Heeeelp! heeeelp!

 

Merhaba, hala parti konusunda, burada düşündüğüm bir komut dosyası denedim ama strateji testi yanlış parti boyutunda bir hata veriyor. Geçmiş verilerinin bazı işlevleri veya neyi desteklemediğini bilmiyorum. Komut dosyası sadece EURUSD içindir. Neyi yanlış yapıyorum yoksa bu bir strateji test cihazı sorunu mu?

 extern int LotPercentage= 10 ; // use 10% of balance as lot size


double LotInBalance=(LotPercentage/ 100 )* AccountBalance (); // find the amount that is 10% of balance lets assume its $1000
double LotUnits=LotBalance* AccountLeverage (); // multiply this 10% balance($100) by leverage to get lot units
double lots= NormalizeDouble ((LotUnits/ 100000 ), 2 ); // expected to return 0.1
/* divide this lot units by 100,000(standard lot size units) and normalize to 2 decimal places to get something like 0.1 if account balance is say $1000 for use in ordersend()*/

 
jameslarry :

Merhaba, hala parti konusunda, burada düşündüğüm bir komut dosyası denedim ama strateji testi yanlış parti boyutunda bir hata veriyor. Geçmiş verilerinin bazı işlevleri veya neyi desteklemediğini bilmiyorum. Komut dosyası sadece EURUSD içindir. Neyi yanlış yapıyorum yoksa bir strateji test cihazı sorunu mu?

 extern int LotPercentage= 10 ; // use 10% of balance as lot size


double LotInBalance=(LotPercentage/ 100 )* AccountBalance (); // find the amount that is 10% of balance lets assume its $1000
double LotUnits=LotBalance* AccountLeverage (); // multiply this 10% balance($100) by leverage to get lot units
double lots= NormalizeDouble ((LotUnits/ 100000 ), 2 ); // expected to return 0.1
/* divide this lot units by 100,000(standard lot size units) and normalize to 2 decimal places to get something like 0.1 if account balance is say $1000*/

Yardıma ihtiyacın yok, zaten bir yardımın var ( https://www.mql5.com/en/forum/140034 ) !. Yine de batırıyorsun!

 
Merhaba, aldığım kod " sıfır bölme " hatası getiriyor ve diğeri büyük ve denenmemiş, sadece sahip olduğum komut dosyası gibi basit bir şey istiyorum. Senaryomu kontrol edip nerede yanlış yaptığımı söyler misin? Bakiye 1000$ ve kaldıraç 1:100 ise, 0.1 lot ile işlem yapmasını istiyorum, bu kadar basit ama baş ağrısı olduğunu kanıtlıyor. Bir kere (10/100)*AccountBalance()'ı 100$ almak için hesapladığımda, OrderSend uğruna onu 0.1'e nasıl getirebilirim. Ayrıca benim için sadece çok kısmı için durdurma kaybını yöneten bir komut dosyası istemiyorum.
 
jameslarry :
Merhaba, aldığım kod "sıfır bölme" hatası veriyor ve diğeri büyük ve denenmemiş
Bu yüzden test edin. . . başkalarının sizin için kodunuzu yazıp test etmesini mi istiyorsunuz?
 
Evet sadece kodumda neyi yanlış yaptığımı soruyorum. Ayrıca onewitch'in bana verdiği kodu test ediyorum ama SL ile betiğin yapmasını istemediğim bir şey yapıyor gibi görünüyor
 
jameslarry :
Evet, sadece kodumda neyi yanlış yaptığımı soruyorum. Ben de kodu test ediyorum ama SL ile betiğin yapmasını istemediğim bir şey yapıyor gibi görünüyor
Kaybedilen bir ticaretin hangi noktasında, seçtiğiniz maksimum kaybı yaşamak istersiniz?
 
 
Merhaba ben de bunu denedim ama yukarıdakiyle aynı hatayı verdi belki AccountBalance() ve AccountFreeMargin() strateji test cihazında çalışmıyor burada kod çünkü testte 3000$'lık bir bakiyeyle başlıyorum ama 4051 geçersiz lot miktarı hatası vermeye devam ediyor . Ve 3000$'ım olup olmadığını sorabilirsem AccountBalance()'ın değeri 3000 veya başka bir şey olur. rahatsız ediyorsam özür dilerim.
 double Balance= AccountBalance ();
if (Balance<= 500 ){lots= 0.1 ;}
if (Balance< 1500 &&Balance> 1000 ){lots= 0.3 ;}
if (Balance< 2500 &&Balance> 2000 ){lots= 0.5 ;}
if (Balance< 3500 &&Balance> 3000 ){lots= 0.7 ;}
if (Balance< 4500 &&Balance> 4000 ){lots= 0.9 ;}
if (Balance< 5500 &&Balance> 5000 ){lots= 1.1 ;}
if (Balance< 6500 &&Balance> 6000 ){lots= 1.3 ;}
if (Balance< 7500 &&Balance> 7000 ){lots= 1.5 ;}
if (Balance< 8500 &&Balance> 8000 ){lots= 1.7 ;}
if (Balance< 9500 &&Balance> 9000 ){lots= 1.9 ;}
if (Balance> 10000 ){lots= 2 ;}
 
jameslarry :
Merhaba ben de bunu denedim ama yukarıdakiyle aynı hatayı verdi belki AccountBalance() ve AccountFreeMargin() strateji test cihazında çalışmıyor burada kod çünkü testte 3000$'lık bir bakiyeyle başlıyorum ama 4051 geçersiz lot miktarı hatası vermeye devam ediyor . Ve 3000$'ım olup olmadığını sorabilirsem AccountBalance()'ın değeri 3000 veya başka bir şey olur. rahatsız ediyorsam özür dilerim.

Ah hayatım,

Bu hatayı alıyorsunuz, çünkü ...o kadar lotu açmanın maliyetini hesaplamadınız. Diğer konunuzu okuyun https://www.mql5.com/en/forum/140034 ve https://www.mql5.com/en/forum/140034/page2#649957

 
bunu nasıl düzeltirim ve AccountBalance() ne döndürür, değeri $ veya diğer birimlerde olur.
 
jameslarry :
nasıl düzeltirim ve AccountBalance() ne döndürür, değeri $ veya diğer birimlerde olur.

Hesap para biriminizde iade edilir. Buraya ekte verdim https://www.mql5.com/en/forum/140034

Bunu nasıl düzeltirsiniz lot hesaplamasını bunun gibi doğru kullanın https://www.mql5.com/en/forum/140034

Neden: