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

 

Herkes aşağıdaki kodu önerebilir:

emir tablosu KAPALI ise (aynı türden 2'den fazla), günün sonuna kadar (veya saat, dakika olarak ayarlanabilen bir süre) İŞLEMİ DURDURUN.

Aynı sipariş türlerine göre geçmiş sayımı nasıl bulabilirim bir şekilde hala bir şekilde bulabilirim, ancak günün sonuna kadar tam olarak nasıl durduracağımı bilmiyorum. Hepsi Trinity ile birlikte)

 
Igor Makanu :

normal değil, bir şeyi aktarmak için 8 bayt işkence görüyorsun

Peki, hangi amaçlara bağlı olarak, sadece kendinize hatırlatırsanız, sekiz yeterlidir :)

 
Порт-моне тв :

Herkes aşağıdaki kodu önerebilir:

emir tablosu KAPALI ise (aynı türden 2'den fazla), günün sonuna kadar (veya saat, dakika olarak ayarlanabilen bir süre) İŞLEMİ DURDURUN.

Aynı sipariş türlerine göre geçmiş sayımı nasıl bulabilirim bir şekilde hala bir şekilde bulabilirim, ancak günün sonuna kadar tam olarak nasıl durduracağımı bilmiyorum. Hepsi Trinity ile birlikte)

 //+----------------------------------------------------------------------------+
//| Подсчет ордеров                                                            |
//+----------------------------------------------------------------------------+
//| -1 - Все типы ордеров                                                      |
//|  0 - ордера типа BUY        3 - ордера типа SELLLIMIT                      |
//|  1 - ордера типа SELL       4 - ордера типа BUYSTOP                        |
//|  2 - ордера типа BUYLIMIT   5 - ордера типа SELLSTOP                       |
//+----------------------------------------------------------------------------+
double GetCloseOrderType( int order_type)
  { double p = 0 ;
   for ( int pos=OrdersHistoryTotal()- 1 ;pos>= 0 ;pos--)
     {
       if ( OrderSelect (pos,SELECT_BY_POS,MODE_HISTORY)== true )
        {
         if (OrderCloseTime()>=время начала дня)
           { 
             if (OrderType()==order_type || order_type == - 1 ) cnt++;
           }
        }
     }
   return (p);
  }
 
Порт-моне тв :

Herkes aşağıdaki kodu önerebilir:

emir tablosu KAPALI ise (aynı türden 2'den fazla), günün sonuna kadar (veya saat, dakika olarak ayarlanabilen bir süre) İŞLEMİ DURDURUN.

Aynı sipariş türlerine göre geçmiş sayımı nasıl bulabilirim bir şekilde hala bir şekilde bulabilirim, ancak günün sonuna kadar tam olarak nasıl durduracağımı bilmiyorum. Hepsi Trinity ile birlikte)

/// получаем время конца (по умолч.текущего) дня. То есть время последней секунды дня

datetime EndOfDay(datetime tim=0) {

   if (tim==0) tim=TimeCurrent();

   datetime dt;

   TimeToStruct(tim,dt);

   dt.hour=23;

   dt.min=59;

   dt.sec=59;

   return StructToTime(dt);

}

/// где-то в торговой логике, отрывки

datetime tradeAllowedFrom; // в глобальной области

....

tradeAllowedFrom=EndOfDay(); // где сетку проверяем : запрещаем торговлю до конца дня

....

if (TimeCurrent()>tradeAllowedFrom) { // проверка разрешения торговли

   Buy(); // Sell();

}

Soruyu doğru anlarsam, bunun gibi bir şey (ilkenin kendisi)

 
Aleksei Stepanenko :

Peki, hangi amaçlara bağlı olarak, sadece kendinize hatırlatırsanız, sekiz yeterlidir :)

Kendinize hatırlatıyorsanız, OnChartEvent(), IMHO'da özel bir olay atmak daha iyidir, bu daha uygundur


MakarFX :

Herkes aşağıdaki kodu önerebilir:

emir tablosu KAPALI ise (aynı türden 2'den fazla), günün sonuna kadar (veya saat, dakika olarak ayarlanabilen bir süre) İŞLEMİ DURDURUN.

günün başlangıcından itibaren siparişlerin geçmişinde arama yapın (bugün, veya TF D1'e sıfır çubuk alın veya tarih saatinden kene dönüştürün)

tarihte belirtilenden daha büyük bir tarihe sahip en az bir sipariş bulunursa, sonuç true olarak işlevden çıkar

en üstteki OnTick() içinde, böyle bir işleve tarih parametreli bir çağrı (bugün)


yazmak için çok tembel, bir düzine satır var, Kim tarihe göre sipariş arama işlevlerine sahipti

 
Порт-моне тв : Aynı emir türlerini aynı emir türlerine göre nasıl bulabilirim bir şekilde hala geçmişi hesaplayabiliyorum ama günün sonuna kadar nasıl durduracağımı tam olarak bilmiyorum. Hepsi Trinity ile birlikte)
 bool trade_buy;
bool trade_sell;

if (кол-во закрытых ордеров buy> 2 )
trade_buy= false ;
else
trade_buy= true ;

if (кол-во закрытых ордеров sell> 2 )
trade_sell= false ;
else
trade_sell= true ;
 
Maxim Kuznetsov :

/// получаем время конца (по умолч.текущего) дня. То есть время последней секунды дня

datetime EndOfDay(datetime tim=0) {

   if (tim==0) tim=TimeCurrent();

   datetime dt;

   TimeToStruct(tim,dt);

   dt.hour=23;

   dt.min=59;

   dt.sec=59;

   return StructToTime(dt);

}

/// где-то в торговой логике, отрывки

datetime tradeAllowedFrom; // в глобальной области

....

tradeAllowedFrom=EndOfDay(); // где сетку проверяем : запрещаем торговлю до конца дня

....

if (TimeCurrent()>tradeAllowedFrom) { // проверка разрешения торговли

   Buy(); // Sell();

}

Soruyu doğru anlarsam, bunun gibi bir şey (ilkenin kendisi)

Hızlı yanıt için teşekkür ederim, ancak bu "ticareti yasaklıyor", nasıl uygulanacağını bilmiyorum, kod için minnettarım.
 
MakarFX :
ticaret sat / ticaret al - işlev nasıl!?
 
Порт-моне тв :
ticaret sat / ticaret al - işlev nasıl!?


 //+------------------------------------------------------------------+
bool trade_buy;
bool trade_sell;
//+----------------------------------------------------------------------------+
//| Подсчет ордеров                                                            |
//+----------------------------------------------------------------------------+
//| -1 - Все типы ордеров                                                      |
//|  0 - ордера типа BUY        3 - ордера типа SELLLIMIT                      |
//|  1 - ордера типа SELL       4 - ордера типа BUYSTOP                        |
//|  2 - ордера типа BUYLIMIT   5 - ордера типа SELLSTOP                       |
//+----------------------------------------------------------------------------+
double GetCloseOrderType( string symb= "" , int order_type)
  {
   double p = 0 ;
   if (symb== "0" ) symb= _Symbol ;
   for ( int pos=OrdersHistoryTotal()- 1 ;pos>= 0 ;pos--)
     {
       if ( OrderSelect (pos,SELECT_BY_POS,MODE_HISTORY)== true )
        {
         if (OrderSymbol()==symb || symb== "" )
           {
             if (OrderCloseTime()>= iTime ( _Symbol , PERIOD_D1 , 0 ))
              { 
               if (OrderType()==order_type || order_type == - 1 ) cnt++;
              }
           }
        }
     }
   return (p);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (GetCloseOrderType( _Symbol , 0 )> 2 )
      trade_buy= false ;
   else
      trade_buy= true ;

   if (GetCloseOrderType( _Symbol , 1 )> 2 )
      trade_sell= false ;
   else
      trade_sell= true ;
//---
   if (trade_buy)
     {
      твое условие открытия покупок
     }
   if (trade_sell)
     {
      твое условие открытия продаж
     }
//---
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko :

Bir şey varsa, buradan alındı

Programlamada yeniyim, çok iyi değil, yeniden yapıp indirmek için yükleyebilir misiniz???