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

 

Merhaba!

Belirli bir koşul oluştuğunda içindeki TakeProfit ve StopLoss'u silmek için basit Uzman Danışmanımda bir siparişi kaydetmek (değiştirmek) nasıl daha kolaydır, maksimumun bir yönde üç siparişten fazla olmaması gerekir (önemliyse) ), anladığım kadarıyla sipariş sayma kullanılıyor, yeni bir kayıt mı yaptırmam gerekiyor? Genel olarak, kayıtsız kalmamayı bekliyorum. TEŞEKKÜR.

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

Merhaba!

Belirli bir koşul oluştuğunda içindeki TakeProfit ve StopLoss'u silmek için basit Uzman Danışmanımda bir siparişi kaydetmek (değiştirmek) nasıl daha kolaydır, maksimumun bir yönde üç siparişten fazla olmaması gerekir (önemliyse) ), anladığım kadarıyla sipariş sayma kullanılıyor, yeni bir kayıt mı yaptırmam gerekiyor? Genel olarak, kayıtsız kalmamayı bekliyorum. TEŞEKKÜR.

OrderModify(OrderTicket(), OrderOpenPrice(), 0 , 0 , 0 );
 
Ivan Butko # :

Ne yazık ki, böyle bir kodun nasıl kullanılacağını anlamak zor.


Bir satın alma emri açarken bayrağı 1'e, kapandığında bayrağı 0'a ayarlamaya çalıştım ve ikincisini açılış koşuluna ekledim. yuvarlanmadı)
Garip, aslında kural çiğnendi: açmak, eğer bir bayrak==0. Ve 1'de bile, hala bir mumla açtı.

Nasıl yaptığını göster.
 
Alexey Viktorov # :

Neden bu kadar zor?

Akıllı olma. Soru bununla ilgili değildi.

 
MakarFX # :
Nasıl yaptığını göster.

Çalışıyor gibi görünüyor, bu şekilde değiştirdim. Şimdi satmaya çalışın ve birbirlerinden bağımsız olup olamayacaklarını görün.

 int Buy= 0 ,
    Sell= 0 ;

void OnTick ( void )
  {
     double 
    ma= iMA ( NULL , 0 , 20 , 0 , MODE_SMA , PRICE_CLOSE , 0 ),
    ma2= iMA ( NULL , 0 , 80 , 0 , MODE_SMA , PRICE_CLOSE , 0 );

     if (ma>ma2 && Buy== 0 ) 
      { 
         OrderSend ( Symbol (), OP_BUY, lots, Ask, 3 , Bid - SL * Point , 0 , NULL , 888 , 0 , Blue);
        Buy= 1 ; 
      }
      
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ;
       if (OrderMagicNumber()!= 888 || OrderSymbol()!= Symbol ()) continue ;
       //--- check order type 
       if (OrderType()==OP_BUY)
        {
         if (perceptron_B() < Porog_B)
           {
             if (!OrderClose(OrderTicket(),OrderLots(),Bid, 3 ,White))
               Print ( "OrderClose error " , GetLastError ());
            Buy= 1 ;
           }
           
         break ;
        }

UPD
Phew, tasarım işe yaradı) Aynısını hücreler için yaptım, şimdi birbirlerinden bağımsız olarak açılabilirler ve farklı bir mantık eşlik edebilirler.

 
Ivan Butko # :

Çalışıyor gibi görünüyor, bu şekilde değiştirdim. Şimdi satmaya çalışın ve birbirlerinden bağımsız olup olamayacaklarını görün.

UPD
Phew, tasarım işe yaradı) Aynısını hücreler için yaptım, şimdi birbirlerinden bağımsız olarak açılabilirler ve farklı bir mantık eşlik edebilirler.

Muhtemelen derlerken yemin eder)))

 
MakarFX # :

Muhtemelen derlerken yemin eder)))

Aynen öyle! Biraz, " 'OrderSend' dönüş değeri kontrol edilmelidir AI(2).mq4 34 9 "

Ama işe yarıyor gibi görünüyor.)
 
Ivan Butko # :

Aynen öyle! Biraz, " 'OrderSend' dönüş değeri kontrol edilmelidir AI(2).mq4 34 9 "

Ama işe yarıyor gibi görünüyor.)

bu şekilde yap

     if (ma>ma2 && Buy== 0 ) 
      { 
         if ( OrderSend ( Symbol (), OP_BUY, lots, Ask, 3 , Bid - SL * Point , 0 , NULL , 888 , 0 , Blue))
        Buy= 1 ; 
      }
 
MakarFX # :

bu şekilde yap

Teşekkür ederim!

 
MakarFX # :

teşekkür ederim!