Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
double lots= 0.1 ;
fakat aşağıdaki gibi dinamikleştirmeye çalıştığımda yanlış parti büyüklüğü diyor. Hesabım mikro ve minimum 0.01 lotu destekliyor.extern int LotPercentage= 10 ; // use 10% of balance as lot size int start() { 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()*/ ... return 0 ; }
Ayrıca bu, daha da basitken aynı hatayı döndürürdouble lots; double Balance= AccountBalance (); if (Balance<= 500 ){lots= 0.1 ;} // If my account has $500 or less the lot will be 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 ;} // If account balance if over 10000 lot is 2 if ( /*opening criteria met*/ ){ OrderSend ( Symbol (),OP_BUY,lots,...) }
Lütfen daha iyi anlamak için koda eklediğim yorumları okuyun.BUNU GERÇEK PARA İLE YAPMAYIN.
%10 KAYBETMEK İSTER MİSİNİZ yoksa %10 OLARAK AÇIK POZİSYON MU? (cevap: ilki!)
Birinin hesabına 1000$ yatırabileceği şekilde %10 ile pozisyon açmak ve 0.1 lot ile pozisyon açmak istiyorum(kaldıraç 1:100 ise %10).
onewithzachy haklısın, onu aşağıda değiştirdim ve işe yaradı ama strateji testi daha zayıf çıktı, sanırım sabit lotları kullanmak en iyisi.
Sabit bir parti büyüklüğü belirlersem her şey yolunda gider ama ben dinamik bir parti büyüklüğü istiyorum. Bu yüzden yukarıdaki senaryoyu düşündüm ama çalışmıyor ve sorunu bilmiyorum. @raptor Kaldıraç oranım 1:100 olduğu için 0.1 lot olduğunu anladığım 1000$'lık bakiyenin 100$'ını kullanmak istiyorum ancak dinamik olmasını istiyorum, böylece sistem kârı ve bakiyesi yükselirse yeni bakiye 2000$ olursa diyelim ki şimdi açılmasını istiyorum belirlediğim yüzdeye göre 200$ (0,2 lot) ile işlem yapıyor, yani %10, %20 veya belirlediğim herhangi bir bakiye/marj. @ onewithzachy orderend iyi, çünkü sabit lot büyüklüğü ayarladığımda çalışıyor ama aşağıdaki gibi dinamikleştirmeye çalıştığımda yanlış lot büyüklüğü diyor. Hesabım mikro ve minimum 0.01 lotu destekliyor. Ayrıca bu, daha basit olmasına rağmen aynı hatayı döndürür. Lütfen daha iyi anlamak için koda eklediğim yorumları okuyun.
Hayır bekle biraz turbo ekledi, yanlış test ettim. Tonlarca if ifadesi yerine tek bir formül kullanarak hesaplayabilseydim harika olurdu. Bir formül elde etmek mümkün mü?
En güvenli yol hangisidir?