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

 

Beyler, değerlerini her dakika güncellemek için bekleyen emirlere ihtiyacınız var, bir şeyin modifikasyonu çarpıktı, bu yüzden her dakikayı her iki yönde de silmeye ve kurmaya karar verdim, test cihazında çalışıyor, ancak gerçek hayatta, bir şekilde koymuyor aşağı. Silmek yerine düzeltin veya yardım edin, bir değişiklik yapın.


       if ( TimeCurrent ()>TimeCheck_sn && TimeCurrent ()<TimeCheck_en && Ogranichitel > 0 )
        {

         if (IsNewCandle())
           {

             if (OrderOfSymbol> 0 && OrderType() ==  OP_BUYSTOP)
               ticket2 =  OrderDelete(OrderTicket(),Violet);

             if (OrderOfSymbol> 0 && OrderType() ==  OP_SELLSTOP)
               ticket2 =  OrderDelete(OrderTicket(),Violet);


             if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
               if (NewsSellAllow == true )
                  ticket2 = OrderSend ( Symbol (),OP_SELLSTOP, LotSk, Bid-(Skachok* Point ), Slippage, 0 , Bid-((Skachok+TPsk)* Point ), "открыт ордер на продажу" , Magic, 0 , Red);
                   Print ( "OpenOrderSuccess" );
                  
             if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
               if (NewsBuyAllow == true )
                  ticket2 = OrderSend ( Symbol (),OP_BUYSTOP, LotSk, Ask+(Skachok* Point ), Slippage, 0 , Ask+((Skachok+TPsk)* Point ), "открыт ордер на покупку" , Magic, 0 , Blue);
                   Print ( "OpenOrderSuccess" );


             if (OrderType() ==  OP_BUYSTOP && OrderOfSymbol> 0 )
               ticket2 = OrderModify(OrderTicket(), (Ask+(Skachok* Point )), 0 , (Ask+((Skachok+TPsk)* Point )), 0 );

             if (OrderType() ==  OP_SELLSTOP && OrderOfSymbol> 0 )
               ticket2 = OrderModify(OrderTicket()+ 1 , (Bid-(Skachok* Point )), 0 , (Bid-((Skachok+TPsk)* Point )), 0 );
           }
        }


       if ( TimeCurrent () == TimeCheck_en)
        {


         if (IsNewCandle())
           {
             if (OrderOfSymbol> 0 && OrderType() ==  OP_BUYSTOP)
               ticket2 =  OrderDelete(OrderTicket(),Violet);

             if (OrderOfSymbol> 0 && OrderType() ==  OP_SELLSTOP)
               ticket2 =  OrderDelete(OrderTicket(),Violet);
           }


        }
 
Порт-моне тв bekleyen emirlere ihtiyacınız var, bir şeyin modifikasyonu çarpıktı, bu yüzden her dakikayı her iki yönde de silmeye ve kurmaya karar verdim, test cihazında çalışıyor, ancak gerçek hayatta, bir şekilde koymuyor aşağı. Silmek yerine düzeltin veya yardım edin, değişiklik yapın.


Değişikliğe daha iyi dönün, neye ihtiyacınız olduğunu açıklayın
 
Tretyakov Rostyslav # :
Değişikliğe daha iyi dönün, neye ihtiyacınız olduğunu açıklayın

yeni bir mum üzerinde, bekleyenleri her iki yönde puanlarda belirli bir girinti ile ve kar alarak (klasik gibi) değiştirmeniz gerektiğinde, kırılırsa (haberlerde çekim), sipariş açılır (ikinci bekleyen otomatik olarak kapatılabilir), ancak henüz açılmadı, sonra tekrar ve tekrar değiştirin; ve tüm bunlar belirli bir süre içinde. danışmanın parametrelerinde belirtilmiştir.

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

yeni bir mum üzerinde, bekleyenleri her iki yönde puanlarda belirli bir girinti ile ve kar alarak (klasik gibi) değiştirmeniz gerektiğinde, kırılırsa (haberlerde çekim), sipariş açılır (ikinci bekleyen otomatik olarak kapatılabilir), ancak henüz açılmadı, sonra tekrar ve tekrar değiştirin; ve tüm bunlar belirli bir süre içinde. danışmanın parametrelerinde belirtilmiştir.

İlk siparişler nasıl verilir?
 
Tretyakov Rostyslav # :
İlk siparişler nasıl verilir?
 if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
               if (NewsSellAllow == true )
                  ticket2 = OrderSend ( Symbol (),OP_SELLSTOP, LotSk, Bid-(Skachok* Point ), Slippage, 0 , Bid-((Skachok+TPsk)* Point ), "открыт ордер на продажу" , Magic, 0 , Red);
                   Print ( "OpenOrderSuccess" );
                  
             if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
               if (NewsBuyAllow == true )
                  ticket2 = OrderSend ( Symbol (),OP_BUYSTOP, LotSk, Ask+(Skachok* Point ), Slippage, 0 , Ask+((Skachok+TPsk)* Point ), "открыт ордер на покупку" , Magic, 0 , Blue);
                   Print ( "OpenOrderSuccess" );
 
Порт-моне тв # :
şimdi bir bakacağım
 
Порт-моне тв # :
Her iki sipariş türü için de aynı koşula sahipsiniz
 if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
 
Tretyakov Rostyslav # :
Her iki sipariş türü için de aynı koşula sahipsiniz

yani buna her iki yönde de ihtiyacım var mı yoksa bir şey eklemem mi gerekiyor?

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

yani buna her iki yönde de ihtiyacım var mı yoksa bir şey eklemem mi gerekiyor?

İşte... barın açılışında bir kez değişiklik

Açılışa gelince, haberler üzerinden işlem yapıyorsanız, "Kapat[1]>Aç[1]"a hiç gerek yoktur ve mum önemliyse, o zaman

tek yön "Kapat[1] > Aç[1]" ve diğer yön "Kapat[1] < Aç[1]"

 //+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
     {
       if (NewsSellAllow == true )
        {
         ticket2 = OrderSend ( Symbol (),OP_SELLSTOP, LotSk, Bid-(Skachok* Point ), Slippage, 0 , Bid-((Skachok+TPsk)* Point ), "открыт ордер на продажу" , Magic, 0 , Red);
         Print ( "OpenOrderSuccess" );
        }
     }
   if (Close[ 1 ]>Open[ 1 ] && CountOrders()== 0 )
     {
       if (NewsBuyAllow == true )
        {
         ticket2 = OrderSend ( Symbol (),OP_BUYSTOP, LotSk, Ask+(Skachok* Point ), Slippage, 0 , Ask+((Skachok+TPsk)* Point ), "открыт ордер на покупку" , Magic, 0 , Blue);
         Print ( "OpenOrderSuccess" );
        }
     }
   if (newbar!=Time[ 0 ])
     {
      ModifyOrder();
      newbar=Time[ 0 ];
     }
  }
//+------------------------------------------------------------------+
//| Подсчет открытых ордеров                                         |
//+------------------------------------------------------------------+
int CountOrders( int ot=- 1 ) 
  {
   int cnt= 0 ;
   int i= OrdersTotal ()- 1 ;
   for ( int pos=i;pos>= 0 ;pos--)
     {
       if ( OrderSelect (pos,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== _Symbol &&OrderMagicNumber()==Magic)
           {
             if (OrderType()==ot||ot==- 1 ) cnt++;
           }
        }
     }
   return (cnt);
  }
//+------------------------------------------------------------------+
//| Модификация ордера                                               |
//+------------------------------------------------------------------+
void ModifyOrder()
  {
   int i= OrdersTotal ()- 1 ;
   for ( int pos=i;pos>= 0 ;pos--)
     {
       if ( OrderSelect (pos,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== _Symbol &&OrderMagicNumber()==Magic)
           {
             if (OrderType()==OP_BUYSTOP&&OrderOpenPrice()!=Ask+(Skachok* Point ))
              {
               if (OrderModify(OrderTicket(), Ask+(Skachok* Point ), 0 , Ask+((Skachok+TPsk)* Point )))
                 { Print ( "Ордер модифицирован" );}
               else
                 { Print ( "Ошибка модификации ордера:" , GetLastError ());}
              }
             if (OrderType()==OP_SELLSTOP&&OrderOpenPrice()!=Bid-(Skachok* Point ))
              {
               if (OrderModify(OrderTicket(), Bid-(Skachok* Point ), 0 , Bid-((Skachok+TPsk)* Point )))
                 { Print ( "Ордер модифицирован" );}
               else
                 { Print ( "Ошибка модификации ордера:" , GetLastError ());}
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
 
Tretyakov Rostyslav # :

İşte... barın açılışında bir kez değişiklik

Açılışa gelince, haberler üzerinden işlem yapıyorsanız, "Kapat[1]>Aç[1]"a hiç gerek yoktur ve mum önemliyse, o zaman

tek yön "Kapat[1] > Aç[1]" ve diğer yön "Kapat[1] < Aç[1]"

teşekkür ederim yarın sabah gidiyorum