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

 

Güzel gün!!!

Anlamama yardım et. İzleyen durdurmayı şebeke danışmanına bağlarım, şimdiye kadar sadece ilk sıraya. Trol çalışmayı durdurdu. bana sorunun ne olduğunu söyle

İşte tek siparişlerin açıldığı kod

 double JAW = iAlligator ( Symbol (),TimeframesIndicators, 13 , 8 , 5 , 8 , 5 , 3 , MODE_SMMA , PRICE_MEDIAN ,MODE_GATORJAW, 0 );
     double TEETH = iAlligator ( Symbol (),TimeframesIndicators, 13 , 8 , 5 , 8 , 5 , 3 , MODE_SMMA , PRICE_MEDIAN ,MODE_GATORTEETH, 0 );
     double LIPS = iAlligator ( Symbol (),TimeframesIndicators, 13 , 8 , 5 , 8 , 5 , 3 , MODE_SMMA , PRICE_MEDIAN ,MODE_GATORLIPS, 0 );
     double DI_PLUSCurrent= iADX ( Symbol (),TimeframesIndicators, 14 , PRICE_CLOSE ,MODE_PLUSDI, 0 );
     double DI_MINUSCurrent= iADX ( Symbol (),TimeframesIndicators, 14 , PRICE_CLOSE ,MODE_MINUSDI, 0 );
     double MacdCurrent= iMACD ( Symbol (),TimeframesIndicators, 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 0 );
     double MacdPrevious= iMACD ( Symbol (),TimeframesIndicators, 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 2 ); 
     double ATR = iATR ( Symbol (), TimeframesVolatility, BarCount, 0 );
     if (CountTrade() == 0 )
     { 
         if ((UseHour== 1 &&Hour()>=StartTime&&Hour()<=StopTime)||UseHour== 0 )
         if (LIPS>TEETH&& TEETH>JAW&&DI_PLUSCurrent> 18 &&DI_PLUSCurrent>DI_MINUSCurrent&&MacdCurrent>MacdPrevious)                              
         {
           FirstLots = Lots();
           tp = NormalizeDouble (Ask + TakeProfitFirstOrder* Point , Digits );
           ticket = OrderSend ( Symbol (), OP_BUY, FirstLots, Ask, slip, 0 , tp, "1-ый ордер" , Magic, 0 , Blue); 
            {
             if (Bid - OrderOpenPrice() > TrailingStop* Point ) 
              Trailing();
            }
         }
         if ((UseHour== 1 &&Hour()>=StartTime&&Hour()<=StopTime)||UseHour== 0 )
         if (LIPS<TEETH&& TEETH<JAW&&DI_MINUSCurrent> 18 &&DI_MINUSCurrent>DI_PLUSCurrent&&MacdCurrent<MacdPrevious)                            
         {
           FirstLots = Lots();
           tp = NormalizeDouble (Bid - TakeProfitFirstOrder* Point , Digits );
           ticket = OrderSend ( Symbol (), OP_SELL, FirstLots, Bid, slip, 0 , tp, "1-ый ордер" , Magic, 0 , Red); 
           {
           if (OrderOpenPrice() - Ask > TrailingStop* Point )
              Trailing();
           }
         }
       }

İşte tek siparişleri değiştirme işlevi

 //+----------------------------------------------------------------------------+
//| Трейлинг стоп одиночных ордеров                                            |
//+----------------------------------------------------------------------------+
void Trailing()
{
   for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
   {
       if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
         {
           if (OrderType() == OP_BUY)
           {
             if (Bid - OrderOpenPrice() > TrailingStop* Point || OrderStopLoss() == 0 )
             {
                 if (OrderStopLoss() < Bid - (TrailingStep + TrailingStop)* Point || OrderStopLoss() == 0 )
                {
                   if (!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble (Bid - TrailingStop* Point , Digits ), tp, 0 ))
                     Print ( "Ошибка модификации ордера на покупку!" );
                }
             }
           }
           if (OrderType() == OP_SELL)
           {
             if (OrderOpenPrice() - Ask > TrailingStop* Point || OrderStopLoss() == 0 )
             {
                 if (OrderStopLoss() > Ask + (TrailingStep + TrailingStop)* Point || OrderStopLoss() == 0 )
               {
                   if (!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble (Ask + TrailingStop* Point , Digits ), tp, 0 ))
                     Print ( "Ошибка модификации ордера на продажу!" );
               }
             }
           }
         }
      }
   }
}

Teşekkürler!!!!

 
EVGENII SHELIPOV # :

Güzel gün!!!

Anlamama yardım et. İzleyen durdurmayı şebeke danışmanına bağlarım, şimdiye kadar sadece ilk sıraya. Trol çalışmayı durdurdu. Sorunun ne olduğunu söyle

İşte tek siparişlerin açıldığı kod

İşte tek siparişleri değiştirme işlevi

Teşekkürler!!!!

Trollere sadece arama emri olmadığında girersin...
 
MakarFX # :
Haklısın çalışıyor... rıhtımlarda hata var
1345 yapımı türkiye'de çoklu para modu çalışıyor.) 10 majör için kontrol ettim, 10 çiftin hepsinden veri alıyor ve ne istersen onu çiziyor)
Ve test cihazındaki düğmelere basar)
 
MakarFX # :
Trollere sadece arama emri olmadığında girersin...

Değişti hiçbir şey değişmedi

 void OnTick ()
{
     double JAW = iAlligator ( Symbol (),TimeframesIndicators, 13 , 8 , 5 , 8 , 5 , 3 , MODE_SMMA , PRICE_MEDIAN ,MODE_GATORJAW, 0 );
     double TEETH = iAlligator ( Symbol (),TimeframesIndicators, 13 , 8 , 5 , 8 , 5 , 3 , MODE_SMMA , PRICE_MEDIAN ,MODE_GATORTEETH, 0 );
     double LIPS = iAlligator ( Symbol (),TimeframesIndicators, 13 , 8 , 5 , 8 , 5 , 3 , MODE_SMMA , PRICE_MEDIAN ,MODE_GATORLIPS, 0 );
     double DI_PLUSCurrent= iADX ( Symbol (),TimeframesIndicators, 14 , PRICE_CLOSE ,MODE_PLUSDI, 0 );
     double DI_MINUSCurrent= iADX ( Symbol (),TimeframesIndicators, 14 , PRICE_CLOSE ,MODE_MINUSDI, 0 );
     double MacdCurrent= iMACD ( Symbol (),TimeframesIndicators, 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 0 );
     double MacdPrevious= iMACD ( Symbol (),TimeframesIndicators, 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 2 ); 
     double ATR = iATR ( Symbol (), TimeframesVolatility, BarCount, 0 );
     if (CountTrade() == 0 )
     { 
         if ((UseHour== 1 &&Hour()>=StartTime&&Hour()<=StopTime)||UseHour== 0 )
         if (LIPS>TEETH&& TEETH>JAW&&DI_PLUSCurrent> 18 &&DI_PLUSCurrent>DI_MINUSCurrent&&MacdCurrent>MacdPrevious)                              
         {
           FirstLots = Lots();
           tp = NormalizeDouble (Ask + TakeProfitFirstOrder* Point , Digits );
           ticket = OrderSend ( Symbol (), OP_BUY, FirstLots, Ask, slip, 0 , 0 , "1-ый ордер" , Magic, 0 , Blue); 
         }
         if ((UseHour== 1 &&Hour()>=StartTime&&Hour()<=StopTime)||UseHour== 0 )
         if (LIPS<TEETH&& TEETH<JAW&&DI_MINUSCurrent> 18 &&DI_MINUSCurrent>DI_PLUSCurrent&&MacdCurrent<MacdPrevious)                            
         {
           FirstLots = Lots();
           tp = NormalizeDouble (Bid - TakeProfitFirstOrder* Point , Digits );
           ticket = OrderSend ( Symbol (), OP_SELL, FirstLots, Bid, slip, 0 , 0 , "1-ый ордер" , Magic, 0 , Red); 
         }
         if (CountTrade() == 1 ) Trailing();

       }
 
EVGENII SHELIPOV # :

Değişti hiçbir şey değişmedi

hiçbir şeyi değiştirmedin

itirazınız

 if (CountTrade() == 1 ) Trailing();

içeride

 if (CountTrade() == 0 )
 
Tünaydın! Lütfen söyleyin, bir şekilde hareketli ortalamalarda tek yönlü alım satım seçme (satın alma veya satma) yeteneğini eklemek mümkün mü - mt5 uzmanı?
 
amsgif80 Hareketli ortalamalarda tek yönlü alım satım seçme (satın alma veya satma) yeteneğini bir şekilde eklemenin mümkün olup olmadığını söyleyebilir misiniz - mt5 uzmanı?

Bunu MQL5 EA koduna yazın ve bu seçeneğe sahip olacaksınız.

 
Vladimir Karputov # :

Bunu MQL5 EA koduna yazın ve bu seçeneğe sahip olacaksınız.

Denedim, çalışmadı. Bu konuda tam bir acemiyim :(
 
amsgif80 # :
Denedim, çalışmadı. Bu konuda tam bir acemiyim :(
çabanı göster...
 
amsgif80 # :
Denedim, çalışmadı. Bu konuda tam bir acemiyim :(

Girmeye çalıştığım kod bu:

bunu kodun en üstüne koy:
numaralandırma ENUM_DIRECTION{
DIRECTION_BUY = 0, // sadece satın al
DIRECTION_SELL = 1, // sadece sat
DIRECTION_ANY = 2, // al ve sat
};

ENUM_DIRECTION girişi inp_direction = DIRECTION_ANY; // izin verilen ticaret yönü


sonra kodda satın almanın nerede açıldığını ve satışın nerede açıldığını bulun. start() veya OnTick() işlevinin içinde aranmalıdır
koşullarda satın nerede ekleyin:
if(inp_direction!=DIRECTION_SELL)
satış nerede, koşullara ekleyin:
if(inp_direction!=DIRECTION_BUY)