PDA

View Full Version : soalan noobie



Yuan7
10-20-2009 20:11, 08:11 PM
Bolehkah seseorang menjelaskan kepada saya bagaimana EA ini mengira saiz lot untuk setiap sebab perdagangan saya memahami litlle dari bahasa mt4.

//| Kirakan saiz lot yang optimum |
// ----------------------------------------------- -------------------
LotsOptimized ganda ()
{
double lot = Banyak;
int orders = HistoryTotal ();/pesanan latar belakang selesai
int loss = 0;/jumlah pesanan kerugian tanpa patah
//- pilih banyak dimensi
lot = NormalizeDouble (AccountFreeMargin () * MaximumRisk1000.0,1);
//- Kirakan jumlah pesanan kerugian tanpa patah
jika (DecreaseFactorlt; 0)

untuk (int I = pesanan-1; igt; = 0; I--)

jika (OrderSelect (I, SELECT_BY_POS, MODE_HISTORY) == palsu) Percetakan (Ralat di latar belakang!); berpecah;
jika (OrderSymbol ()!) = Simbol ()
jika (lossgt; 1) lot = NormalizeDouble (banyak lot * kerugianDecreaseFactor, 1);

//- kembali dimensi banyak
jika (lotlt; 0.01) lot = 0.01;
pulangan (lot);

ladymedici
12-16-2021 10:29, 10:29 AM
Daripada baris ini: ganda ganda = Banyak; ... jika (lossgt; 1) lot = NormalizeDouble (banyak lot * kerugianDecreaseFactor, 1); pertama, anda mempunyai saiz lot pertama, bernama Banyak (lihat pemboleh ubah luar, di bahagian atas kod) katakan Lots = 0.2. Kemudian ada DecreaseFactor, katakan DecreaseFactor = 5 jika kerugian berturut-turut anda sama dengan 2 (kerugian yang lebih tinggi daripada 1) maka dimensi banyak = 0.2 - 0.2 * 2/5 = 0.2 - 0.45 = 0.2 - 0.08 = 0.12 titik perpuluhan = gt; NormalizeDouble (..., 1) 0.12 = gt; 0.1 menjangkakan bantuan ini

Yuan7
12-16-2021 11:50, 11:50 AM
Terima kasih saya faham sekarang

dari titik itu: double lot = Banyak; ... jika (lossgt; 1) lot = NormalizeDouble (banyak lot * kerugianDecreaseFactor, 1); pertama, anda mempunyai saiz lot permulaan, yang disebut Lot (lihat pemboleh ubah luar, di bahagian atas kod) mari kita nyatakan Banyak = 0.2. Kemudian ada DecreaseFactor, katakan DecreaseFactor = 5 jika kerugian berturut-turut sama dengan 2 (kerugian lebih besar daripada 1) maka saiz lot = 0.2 - 0.2 * 2/5 = 0.2 - 0.45 = 0.2 - 0.08 = 0.12 1 titik perpuluhan = gt; NormalizeDouble (..., 1) 0.12 = gt; 0.1 menjangkakan bantuan ini

dari titik itu: double lot = Banyak; ... jika (lossgt; 1) lot = NormalizeDouble (banyak lot * kerugianDecreaseFactor, 1); pertama, anda mempunyai saiz lot permulaan, yang disebut Lot (lihat pemboleh ubah luar, di bahagian atas kod) mari kita nyatakan Banyak = 0.2. Kemudian ada DecreaseFactor, katakan DecreaseFactor = 5 jika kerugian berturut-turut sama dengan 2 (kerugian lebih besar daripada 1) maka saiz lot = 0.2 - 0.2 * 2/5 = 0.2 - 0.45 = 0.2 - 0.08 = 0.12 1 titik perpuluhan = gt; NormalizeDouble (..., 1) 0.12 = gt; 0.1 menjangkakan bantuan ini

Yuan7
12-16-2021 13:11, 01:11 PM
Ada sesuatu yang saya tidak tahu; Sekiranya margin bebas akaun adalah 3000 dan risiko maksimum ialah .01 saiz lot hendaklah 3000 * .01/1000 = .03 tetapi EA hanya mengambil satu saiz lot .01. Pada beberapa peristiwa, EA terbuka .1 banyak apabila akaun berkembang menjadi 5000 tetapi pada masa ini ia mesti membuka 5000 * .011000 = .05 lot./| Kira saiz lot yang terbaik |/ ----------------------------------------------- ------------------- double LotsOptimized () {double lot = Lots; int orders = HistoryTotal ();//order pesanan total int loss = 0;/nombor kehilangan pesanan tanpa fraktur/- memilih lot lot banyak = NormalizeDouble (AccountFreeMarg in () * MaximumRisk1000.0,1);/- menembus bilangan pesanan kerugian tanpa patah jika (DecreaseFactorlt; 0) untuk (int I = order-1; igt; = 0; I--) OrderType () gt; OP_SELL) kekal;/- jika (OrderProfit () gt; 0) memecah; jika (OrderProfit () lt; 0) kerugian ; jika (lossgt; 1) lot = NormalizeDouble (banyak lot * kerugianDecreaseFactor, 1);/- pulih banyak lot jika (lotlt; 0.01) lot = 0.01; pulangan (lot);
https://www.justgetforex.com/trading-system-and-egies/104-trading-journal.html

Yuan7
12-16-2021 14:31, 02:31 PM
Saya masih tidak faham Ea tidak membuka saiz lot. Cqn womeone beritahu saya apa yang berdiri 1 dalam kod .... Lot = NormalizeDouble (AccountFreeMarg in () * MaximumRisk1000.0,1);

Terdapat sesuatu yang saya tidak tahu; Sekiranya margin bebas akaun adalah 3000 dan risiko max ialah .01 saiz lot hendaklah 3000 * .011000 = .03 walau bagaimanapun, EA hanya mengambil dimensi banyak .01. Pada beberapa peristiwa, EA terbuka .1 banyak apabila akaun berkembang menjadi 5000 tetapi pada peringkat ini ia mesti membuka 5000 * .011000 = .05 lot./| Kira saiz lot yang terbaik |/ ----------------------------------------------- ------------------- double LotsOptimized () {double lot = Lots; int orders = HistoryTotal ();//order pesanan total int loss = 0;/...

Terdapat sesuatu yang saya tidak tahu; Sekiranya margin bebas akaun adalah 3000 dan risiko max ialah .01 saiz lot hendaklah 3000 * .011000 = .03 walau bagaimanapun, EA hanya mengambil dimensi banyak .01. Pada beberapa peristiwa, EA terbuka .1 banyak apabila akaun berkembang menjadi 5000 tetapi pada peringkat ini ia mesti membuka 5000 * .011000 = .05 lot./| Kira saiz lot yang terbaik |/ ----------------------------------------------- ------------------- double LotsOptimized () {double lot = Lots; int orders = HistoryTotal ();//order pesanan total int loss = 0;/...

ladymedici
12-16-2021 15:52, 03:52 PM
Halo, nampaknya terdapat logik yang salah dengan balasan terakhir saya. Fungsi dimensi banyak dikira bukan dari banyak faktor, tetapi dari: lot = NormalizeDouble (AccountFreeMarg in () * MaximumRisk1000.0,1); pertama, mengenai NormalizeDouble (., 1), ia akan menghasilkan nilai dengan ketepatan 1 digit. Sebagai contoh, var1 = 5/8 = 0.625. NormalizeDouble (var1,2) = 0.63 gt; gt; gt; 2 digit selepas titik perpuluhan NormalizeDouble (var1,1) = 0.6 gt; gt; gt; 1 digit selepas titik perpuluhan membentuk kes anda, AccountFreeMargin = 3000 MaximumRisk = 0.01 AccountFreeMargin * MaximumRisk1000 = 3000 * 0.011000 = 0.03 lot = NormalizeDouble (0.03,1) = 0.0 !!! 3 dilepaskan kerana berada di tempat kedua, dikira dari kiri berikut titik perpuluhan selepas itu sebelum memulangkan hasilnya:/- banyak hasil dimensi jika (lotlt; 0.01) lot = 0.01; pulangan (lot); oleh itu, kerana lot yang dihitung di atas hasil 0 yang lebih kecil maka 0.01, peranan yang dipulangkan 0.01; Perkara terakhir, anda perlu gunakan jika (DecreaseFactorgt; 0) sebaliknya jika (DecreaseFactorlt; 0), dan pastikan nilai DecreaseFactor adalah nilai positif (contohnya 3) harap bantuan ini