MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 727

 
Igor Makanu :

Halihazırda açık olan siparişlerin maksimum lotuna göre yeni bir siparişin lotunu artırmaktan bahsediyorsak, o zaman siparişleri sayarken, lotun maksimum değerini hatırlayın.

aşağı yukarı şöyle:

Bir sürü tarafımdan sayılır. Adımın da her işlemde artmasını istiyorum. katsayıya göre

 
Carcass77 :

Bir sürü tarafımdan sayılır. Adımın da her işlemde artmasını istiyorum. katsayıya göre

İkinci kez "sihirli adım" hakkında yazıyorsunuz ve adımın ne olduğunu tahmin etmemiz gerekiyor! )))

"Aşırı" emirlerin açılış fiyatlarından bahsediyorsak ve bu emirlerin açılış fiyatlarına göre yeni emirler vermek istiyorsanız, prensip aynıdır, emirleri yeniden hesaplarken maksimum / minimum açılış fiyatlarını ararsınız . sipariş türleri, bunun gibi bir şey:

 int NumberOfOrders( int magic_, double &openpricemaxbuy_, double &openpriceminsell_)
  {
   int i,ot,buy_= 0 ,sell_= 0 ,k= OrdersTotal ();
   openpricemaxbuy_= 0.0 ; openpriceminsell_= 0.0 ;
   for (i= 0 ; i<k; i++)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
        {
         ot= OrderType ();
         if (( OrderMagicNumber ()==magic_) && ( OrderSymbol ()== _Symbol ))
           {
             if (ot== OP_BUY ) { buy_++;  openpricemaxbuy_  = fmax (openpricemaxbuy_, OrderOpenPrice ());  }
             if (ot== OP_SELL ){ sell_++; openpriceminsell_ = fmin (openpriceminsell_, OrderOpenPrice ()); }
           }
        }
     }
   return (buy_+sell_);
  }



Not: Kapalı siparişlerden bahsediyorsak, kod farklı olacaktır ve siparişler arasında sıralama ilkesi biraz farklıdır - maksimum kapanma süresi olan bir sipariş arayın ve parametrelerini hatırlayın

 

Merhaba. Göstergedeki Yazdır işlevinin neden çalışmadığını söyleyin.

 //+------------------------------------------------------------------+
//|                                                        test3.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
       Print ( "Hello" );
       Print ( "---- First indicator -----" );

   
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
Alexander Mikryukov :

Merhaba. Göstergedeki Yazdır işlevinin neden çalışmadığını söyleyin.

Çalışmamak için hiçbir neden yok, yazılarınız için uzmanların günlüğüne bakın

 
Igor Makanu :

Çalışmamak için hiçbir neden yok, yazılarınız için uzmanların günlüğüne bakın

Evet aptal. Teşekkür ederim.

 
İyi geceler! Söylesene, tek bir komut dosyasıyla birkaç hesabı yönetmek mümkün müdür? Teşekkür ederim!
 
Maxim Voronin :
İyi geceler! Söylesene, tek bir komut dosyasıyla birkaç hesabı yönetmek mümkün müdür? Teşekkür ederim!

Mümkün, ancak bir senaryo, bir danışman ile değil. Hesaplar farklı terminallerde başlatılmalıdır...

 
Vladimir Pastushak :

Mümkün, ancak bir senaryo, bir danışman ile değil. Hesaplar farklı terminallerde başlatılmalıdır...

sakıncası yoksa devam et
 
Maxim Voronin :
sakıncası yoksa devam et

Diğer terminallerle iletişim kurabilecek bir danışman yazılıyor, fotokopi makineleri örnek teşkil edecek.

Çok basit, bir danışman bir şey gönderir ve onu başka bir terminalde alır...

 

INIT_PARAMETERS_YANLIŞ

Programcının yanlış bir dizi giriş parametresini göstermesi amaçlanmıştır; genel optimizasyon tablosunda, böyle bir dönüş koduna sahip sonuç satırı kırmızı ile vurgulanacaktır.

Bu uzman parametre seti için test yapılmayacaktır.



Bir şey kırmızı renkte yanmıyor.

Herkeste var mı?


İşte OnInit'teki kod:
 int OnInit ()
{

if (Koef2<=Koef) return ( INIT_PARAMETERS_INCORRECT ); 

return ( INIT_SUCCEEDED );


Ve aşağıdaki hatalar günlüğe yazılır: