Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1141

 
Vladimir Karputov :

Evet. Şimdi grafiğin en üstünden başlamayı deneyin ve artı işaretini aşağı doğru sürükleyin...

(1250.761-1193.590)/1250.761*100 = 4.57089723762


 
Igor Zakharov :

(1250.761-1193.590)/1250.761*100 = 4.57089723762

Ancak şimdi bir nüans var: daha yüksek çekmeye başladıkları ve daha düşük bittikleri için, grafikteki yüzdeler "-" işaretiyle gösteriliyor. Bana gelince, bilgi içeriği eklendi.

 
Vladimir Karputov :

Pekala, sanırım bir hesap makinesi olduğunu unutmadınız mı? Belki bir şey düşünebilirsiniz?


Eklendi: hesap makinesi çok ağırsa tekrar alıntı yapabilirim:

Terminal: Artık "Artı işareti" aracı, fiyat seviyeleri arasındaki mesafeyi sadece pip olarak değil, aynı zamanda yüzde olarak da gösteriyor:

Hesap makinesinde hiçbir sorun yoktur ve hiç olmamıştır.

Bununla birlikte, "Yüzde", önceden tanımlanmış bir değerin tamamına göre bir şeyin kesridir = %100.

Yani, fiyat seviyeleri arasındaki mesafe neyin yüzdesi olarak?

https://ru.wikipedia.org/wiki/Percentage

 
Anzhela Sityaeva :

Yani, fiyat seviyeleri arasındaki mesafe neyin yüzdesi olarak?

başlangıç fiyatına göre (artı işaretini nereden sürüklediğiniz). Kabul ettim, yukarıya bakın.

 
Igor Zakharov :

ilk fiyata göre (artı işaretini nereden sürükleyin). Kabul ettim, yukarıya bakın.

= %100'den nereye sürükleneceği ve %0'ın durduğu yer varsa, sonuç = %100
 
Anzhela Sityaeva :
= %100'den nereye sürükleneceği ve %0'ın durduğu yer varsa, sonuç = %100

Umarım müşterileriniz bunu okumuyordur...

0 mutlak olduğunda 0%
 
Igor Zakharov :

Umarım müşterileriniz bunu okumuyordur...

0 mutlak olduğunda 0%

Evet... Cuma, yalnız olmadığım iyi oldu. Ancak ölçümün başladığı yerden fiyat değerinin %100 alındığını söylemek daha kolay olacaktır.

 

Bana yardım et, lütfen danışmanı MT5)'ten al))))

Sabit lot ve risk lotu seçimi eklendi... Test cihazında her şey yolunda gidiyor, ancak terminalde, bir risk lotu seçerken EA'yı tamamen tablodan atıyor...

   double dfg, ifg;
   dfg = AccountInfoDouble ( ACCOUNT_MARGIN_FREE );
   ifg = InpVolumeLotOrRisk;
   switch (IntLotOrRisk)
     {
       case MY_FIXLOT:
         InpLots= InpLotsfix;
         break ;

       case MY_RISKLOT:
         InpLots= dfg*ifg/ 25000 ;     // FreeMargin * %риска) / 100 * 250(средняя цена лота)
         break ;

     }

bu kod parçasında yanlış olan ne?

Not Sadece birkaç sayfa için risk formülünü eleştirmeye başlamayın - Bu seçenekten oldukça memnunum) Asıl mesele, lotun bakiyeden sonra yükselmesidir)

 
Vlad Svetlov :

Bana yardım et, lütfen danışmanı MT5)'ten al))))

Sabit lot ve risk lotu seçimi eklendi... Test cihazında her şey yolunda gidiyor, ancak terminalde, bir risk lotu seçerken EA'yı tamamen tablodan atıyor...

bu kod parçasında yanlış olan ne?

Not Sadece birkaç sayfa için risk formülünü eleştirmeye başlamayın - Bu seçenekten oldukça memnunum) Asıl mesele, lotun bakiyeden sonra yükselmesidir)

MATEMATİKSEL HESAPLAMALAR SONUCUNDA alınan parti kontrol edilmeli ve gerekirse yuvarlanmalıdır.

Ben işlevi kullanıyorum:

 //+------------------------------------------------------------------+
//| Lot Check                                                        |
//+------------------------------------------------------------------+
double LotCheck( double lots,CSymbolInfo &symbol)
  {
//--- calculate maximum volume
   double volume= NormalizeDouble (lots, 2 );
   double stepvol=symbol.LotsStep();
   if (stepvol> 0.0 )
      volume=stepvol* MathFloor (volume/stepvol);
//---
   double minvol=symbol.LotsMin();
   if (volume<minvol)
      volume= 0.0 ;
//---
   double maxvol=symbol.LotsMax();
   if (volume>maxvol)
      volume=maxvol;
   return (volume);
  }

aramadan sonra, ne döndürdüğünü kontrol etmeniz gerekir - eğer "0.0" -> ise hesaplanan lot çok küçük çıktı.

 

Herkese selam.

Örnekler klasöründen standart bir zikzak çizerken böyle bir anormallik fark ettim.

Tek fark, testin başlama tarihidir. Belki birileri bu tür çarpıklıkların nedenini ve nasıl düzeltileceğini biliyordur?