MQL5 dilini sıfırdan kendi kendine öğrenme - sayfa 81

 
Alexey Viktorov # :

Bunu gerçekten yazmamışsınızdır umarım...

İşte çalışma fonksiyonu

Tam serbest marjdan hesaplamamak için sadece risk miktarını girmek yeterlidir ...

Cevabınız için teşekkürler Alexey! Versiyonumdaki lot hesaplaması çalışıyor ve kodun sadece dizinin kayıtlı olduğu kısmı çalışmıyor.

Başlangıçta, farklı döviz çiftlerinde farklı risk seviyeleri belirleyebilmeniz için tasarlandı.

Dürüst olmak gerekirse, birden fazla para birimine sahip bir danışman için kodunuzu nasıl kullanacağınızı henüz tam olarak anlamadım.

Saygılarımla, Vladimir.

 
MrBrooklin # :

Cevabınız için teşekkürler Alexey! Versiyonumdaki lot hesaplaması çalışıyor ve kodun sadece dizinin kayıtlı olduğu kısmı çalışmıyor.

Başlangıçta, farklı döviz çiftlerinde farklı risk seviyeleri belirleyebilmeniz için tasarlandı.

Dürüst olmak gerekirse, birden fazla para birimine sahip bir danışman için kodunuzu nasıl kullanacağınızı henüz tam olarak anlamadım.

Saygılarımla, Vladimir.

Çok basit. Öğrendiğin onca şeyden sonra bunu yapmakta zorlanacağını düşünmemiştim...

 /********************************************************************\
|   Calculate optimal lot size     Расчет объема лота                |
/********************************************************************/
//double contractSize(double Lot)
double contractSize( string symbol, double risk)
 {
//  double volume = Lot > 0.0 ? Lot : AccountInfoDouble(ACCOUNT_MARGIN_FREE)/10000,
   double volume = AccountInfoDouble ( ACCOUNT_MARGIN_FREE )*risk/ 10000 ,
         v = volume,
         volumeStep = SymbolInfoDouble (symbol, SYMBOL_VOLUME_STEP ),
         minLot = SymbolInfoDouble (symbol, SYMBOL_VOLUME_MIN ),
         maxLot = SymbolInfoDouble (symbol, SYMBOL_VOLUME_MAX );
  v = round (volume/volumeStep)*volumeStep;
   return ( fmin (maxLot, fmax (minLot, v)));
 } /******************************************************************/

Ve fonksiyon çağrılır

 double lot = contractSize(symbol[Number], Risk[Number]);
 
Alexey Viktorov # :

Çok basit. Öğrendiğin onca şeyden sonra bunu yapmakta zorlanacağını düşünmemiştim...

Ve fonksiyon çağrılır

Tekrar teşekkürler, Alexey! Akşam Uzman Danışmanımda uygulamaya çalışacağım.

Dizilerle yeni tanışmaya başlıyorum, bu yüzden zorluklar. Şimdiye kadar bunları kullanmaya gerek yoktu, ancak şimdi bunun yakın gelecekte doldurulması gereken güçlü bir boşluk olduğunu anlıyorum. Dmitry Fedoseev'in makalesini incelemeye başladım, ancak şimdiye kadar içinde net olmayan birçok şey var. Malzemeyi emmek zaman alır.

Saygılarımla, Vladimir.

 
SanAlex # :

işte çivilediklerim

Belki önce sorunun özünü anlamanız gerekir.
 
SanAlex # :

bir şey - kodu denediğim herkes için - böyle, işe yarıyor gibi görünüyor.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

şimdi başlayacak - tekrar bir ayak örtüsü koydu.

Sasha, serbest olarak sipariş vermek için bu tür kodları yazıyor musunuz? 2 veya daha fazla BİN satırlık kodları nasıl yazdığınızı hep merak etmişimdir. Ve şimdi anlamaya başlıyorum… Kodumun ve sizinkinin satır sayısını sayın… Ve maksimum yayılmayı kontrol etmek saçma… Kullanımı çok daha kolay

   MqlTick tick;
     if (! SymbolInfoTick (posSymbol, tick))
       return ;
     if (tick.ask-tick.bid > inpSpred)
       return ;

İşe yarayacak şekilde yazarsanız ama herkes ne yazdığını anlayamazsa, o zaman genellikle üç satırla idare edebilirsiniz.

   MqlTick tick;
     if (! SymbolInfoTick (posSymbol, tick) || tick.ask-tick.bid > inpSpred)
       return ;
 
SanAlex # :

bu kod terminalden alınmıştır

Aynı ruhla devam edin.
 
SanAlex # :

Ben kendim kod yazmayı bilmiyorum - ancak tüm işlevleri belgelerden alıyorum ve biraz kurcalıyorum, kendi amaçlarım için bitiriyorum.

\\\\\\\\\\\\\\\\\\\\

ayrıca kodlarınıza ve kod tabanına bakıyorum. Öğreniyorum - teorik olarak nasıl olduğunu bilmiyorum - kendi başınıza kazmak nasıl kazılacağını açıklamaktan daha kolay.

Bu o kadar açık ki sadece kazabilirsin. Kodları neden buraya gönderelim?
 
SanAlex # :

seni eğlendirmek için.

Akıllı sorularını başka kime soracaksın?

Sana on yıl vermelerine şaşmamalı, şaşmamalı
 
SanAlex # :

Finlandiya Körfezi'ni terk et ve bize Karadeniz'e gel

Ben aslında Kaliningrad'dayım
 
SanAlex # :

Finlandiya Körfezi'nden ayrıl ve bize Karadeniz'e gel