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

 

OrdersTotal() için sembole göre sipariş seçimini nasıl ayarlayacağımı söyler misiniz?

   int total= OrdersTotal ();

   if (total== 0 &&Bid>=OrderBuy&&Bid<=OrderBuy+ 10 * Point )
    {
     if ( OrderSend ( Symbol (),OP_BUY,Lot,Ask, 5 , 0 , 0 , NULL , 0 , 0 , clrNONE )){:: Alert ( " Order Open " );}
    }

şimdi bir çiftte açık emir varsa, diğerlerinde açılmaz.

 
MakarFX :

OrdersTotal() için sipariş seçimini sembole göre nasıl ayarlayacağımı söyler misiniz?

şimdi bir çiftte açık emir varsa, diğerlerinde açılmaz.

Kod tabanına bakın, her danışmanda bir örnek var

 
Vladimir Pastushak :

Kod tabanına bakın, her danışmanda bir örnek var

ben programcı değilim

benim için karmaşık.

 
MakarFX :

ben programcı değilim

benim için karmaşık.

zor değil

temel bir EA yazmak için, işte tüm işlevsellik https://www.mql5.com/ru/forum/131859

Konuya göre OrdersTotal() - bunların hepsi terminaldeki açık siparişlerdir ( 0 ile numaralandırılmıştır), o zaman OrderSelect() kullanarak bunları tek tek seçmeniz (bir döngüde sıralamanız) ve gerekli siparişlerle işlemeniz gerekir

 for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
   if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) 
  {
   // проверим символ ордера, проверим магикномер ордера....
  }
}
Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 
MakarFX :

OrdersTotal() için sipariş seçimini sembole göre nasıl ayarlayacağımı söyler misiniz?

şimdi bir çiftte açık emir varsa, diğerlerinde açılmaz.

periyodik olarak, gerektiğinde siparişlerinizi kontrol edin (hesaplayın).
Her EA'da önemli eylemlerden önce çağrılan bir döngüm (ağır bir yöntem) var:

for(int pos=OrdersTotal()-1; pos>=0;pos--) {

        if (!OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) {

                selectFailed=true; /* не удалось "выбрать" ордер - статистика может быть неверной */
                continue;

        }

        if (OrderCloseTime()!=0) { /* ордер закрыт но ещё не удалён из списка*/ continue; }

        if (OrderMagicNumber()==0) { /* ордер выставлен юзером */ } continue;
        else if (OrderMagicNumber()!=_Magic) { /* ордер выставлен другим советником */ continue; }

        if (OrderSymbol()!=_Symbol) { /* ордер с правильным Magic но на другом символе */ continue; }

       /// обработка рабочих ордеров, с правильным Magic на символе советника (то есть наш ордер)

       /// проверяются несработки, считается кол-во, статистика, позиции и прочее 

}

sembolle sipariş kontrolü renkli olarak vurgulanır

 
Maxim Kuznetsov :

periyodik olarak, gerektiğinde siparişlerinizi kontrol edin (hesaplayın).
Her EA'da önemli eylemlerden önce çağrılan bir döngüm (ağır bir yöntem) var:

for(int pos=OrdersTotal()-1; pos>=0;pos--) {

        if (!OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) {

                selectFailed=true; /* не удалось "выбрать" ордер - статистика может быть неверной */
                continue;

        }

        if (OrderCloseTime()!=0) { /* ордер закрыт но ещё не удалён из списка*/ continue; }

        if (OrderMagicNumber()==0) { /* ордер выставлен юзером */ } continue;
        else if (OrderMagicNumber()!=_Magic) { /* ордер выставлен другим советником */ continue; }

        if (OrderSymbol()!=_Symbol) { /* ордер с правильным Magic но на другом символе */ continue; }

       /// обработка рабочих ордеров, с правильным Magic на символе советника (то есть наш ордер)

       /// проверяются несработки, считается кол-во, статистика, позиции и прочее 

}

sembolle sipariş kontrolü renkli olarak vurgulanır

Konuyla ilgili olarak, anladığım kadarıyla tarihi siparişlerin biletleri kaybolabilir. Soru, MT4'teki siparişlerin biletlerinin ( SELECT_BY_TICKET ) ve MT5'teki fırsat ve pozisyonların biletlerinin değişip değişmeyeceğidir.

Ayrıca, Ticket ile OrderSelect'ten sonra sipariş zaman içinde değişebilir mi? Örneğin ertesi gün. Danışman kapanmıyor.

Bekleyen bir emir piyasa emri olduysa, emir türüne göre görebilirsiniz. Eğer piyasa kapandıysa, o zaman emir kapanış saatine bakarız, sıfıra eşit değildir OrderCloseTime()!=0

Bekleyen bir sipariş ömrü boyunca kapatılırsa, sipariş bileti nasıl izlenir.

Ve soru şu ki, piyasa emirlerinde (MT4) bir ömür var mı, işe yarıyor mu?

 
MakarFX :

OrdersTotal() için sipariş seçimini sembole göre nasıl ayarlayacağımı söyler misiniz?

şimdi bir çiftte açık emir varsa, diğerlerinde açılmaz.

Soru kaldırılmış, anlaşılmıştır. Herkese teşekkürler.

 
Merhaba canım! Neyin yanlış olduğunu anlamıyorum, neden Alert: time3-time1 = yanlış tarihsaat yazıyor?
 datetime time1 = iTime ( NULL , 0 , 1 );
datetime time3 = iTime ( NULL , 0 , 3 );
datetime delta3 = (time3-time1);   Alert ( "time3-time1 = " ,delta3); 


 
novichok2018 :
Merhaba canım! Neyin yanlış olduğunu anlamıyorum, neden Alert: time3-time1 = yanlış tarihsaat yazıyor?


çünkü sayı negatif çıktı :-)

yukarıdaki mantığa göre, time1 __always__, time3'ten büyüktür

 
Maxim Kuznetsov :

çünkü sayı negatif çıktı :-)

yukarıdaki mantığa göre, time1 __always__, time3'ten büyüktür

Teşekkür ederim! beyinler bazen kapanır.

Neden: