Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1281

 
Vladimir Karputov :

N Bars Martingal kodu için Min Maks'ta dört tür bekleyen emir sayma örneği

Vladimir Karputov :

N Bars Martingale 2 için Min Max kodunda dört tür bekleyen emir sayma örneği

Vladimir Karputov :

N Bars Martingale 2 için Min Max kodunda dört tür bekleyen emir sayma örneği




Vladimir, nedense buylimit siparişlerini saymıyor????

int say_buy_limits = 0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(o_orderInfo.OrderType()==ORDER_TYPE_BUY_LIMIT)
{
count_buy_limits++;
}
}

 
Fergert Фергерт :


Vladimir, nedense buylimit siparişlerini saymıyor????

int say_buy_limits = 0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(o_orderInfo.OrderType()==ORDER_TYPE_BUY_LIMIT)
{
count_buy_limits++;
}
}

1. Kodu doğru şekilde yapıştırın
2. Tüm kodu göster
3. Derleme hataları var mı?
4. Pozisyonları ve bekleyen emirleri içeren pencerenin ekran görüntüsü
 
Vladimir Karputov :
1. Kodu doğru şekilde yapıştırın
2. Tüm kodu göster
3. Derleme hataları var mı?
4. Pozisyonları ve bekleyen emirleri içeren pencerenin ekran görüntüsü

Derleme hatası yok..

BURADA KODU:

 #include <Trade\Trade.mqh>
#include <Trade\OrderInfo.mqh>
#include <Trade\SymbolInfo.mqh>

CTrade      o_trade;
COrderInfo  o_orderInfo;
CSymbolInfo o_symbolInfo;

MqlTradeRequest    order_req={ 0 }, buylimit_req1={ 0 }, buylimit_req2={ 0 }, sellstop_req3={ 0 };
MqlTradeResult     order_res={ 0 }, buylimit_res1={ 0 }, buylimit_res2={ 0 }, sellstop_res3={ 0 };

//double   lot_r    = GlobalVariableGet("glot"); // Глобальная переменная
//double   lot_r    = 0.33;
double    lot_r    = NormalizeDouble ( AccountInfoDouble ( ACCOUNT_BALANCE )/ 15000 , 2 );

int       tp_r     = 125 ;

double    lot_bl1  = 2.5 ;
double    lot_bl2  = 3 ;

double    lot_v    = NormalizeDouble (lot_r + (lot_r * lot_bl1) + (lot_r * lot_bl2), 2 );

int       set_bl1  = 500 ;   
int       set_bl2  = 1000 ;
int       set_v    = 1100 ;

int       tp_bl1   = 70 ;
int       tp_bl2   = 480 ;

int OnInit ()
  {
      order_req.action           = TRADE_ACTION_DEAL ;
      order_req.symbol           = _Symbol ;
      order_req.price            = SymbolInfoDouble (order_req.symbol, SYMBOL_ASK );
      order_req.volume           = lot_r;
      order_req.tp               = order_req.price+tp_r* _Point ;
      order_req.type             = ORDER_TYPE_BUY ;
      order_req.type_filling     = ORDER_FILLING_FOK ;
      
      buylimit_req1.action       = TRADE_ACTION_PENDING ;
      buylimit_req1.symbol       = _Symbol ;
      buylimit_req1.volume       = NormalizeDouble (lot_r*lot_bl1, 2 );
      buylimit_req1.price        = SymbolInfoDouble (buylimit_req1.symbol, SYMBOL_ASK )-set_bl1* _Point ;
      buylimit_req1.tp           = order_req.price-tp_bl1* _Point ;
      buylimit_req1.type         = ORDER_TYPE_BUY_LIMIT ;
      buylimit_req1.type_filling = ORDER_FILLING_RETURN ;
      buylimit_req1.expiration   = ORDER_TIME_GTC ;
      buylimit_req1.magic        = 01 ;
      
      buylimit_req2.action       = TRADE_ACTION_PENDING ;
      buylimit_req2.symbol       = _Symbol ;
      buylimit_req2.volume       = NormalizeDouble (lot_r*lot_bl2, 2 );
      buylimit_req2.price        = SymbolInfoDouble (buylimit_req2.symbol, SYMBOL_ASK )-set_bl2* _Point ;
      buylimit_req2.tp           = order_req.price-tp_bl2* _Point ;
      buylimit_req2.type         = ORDER_TYPE_BUY_LIMIT ;
      buylimit_req2.type_filling = ORDER_FILLING_RETURN ;
      buylimit_req2.expiration   = ORDER_TIME_GTC ;
      buylimit_req1.magic        = 02 ;
      
      sellstop_req3.action       = TRADE_ACTION_PENDING ;
      sellstop_req3.symbol       = _Symbol ;
      sellstop_req3.volume       = NormalizeDouble (lot_v, 2 );
      sellstop_req3.price        = SymbolInfoDouble (sellstop_req3.symbol, SYMBOL_ASK )-set_v* _Point ;
      sellstop_req3.sl           = buylimit_req2.price + 10 * _Point ;
      sellstop_req3.type         = ORDER_TYPE_SELL_STOP ;
      sellstop_req3.type_filling = ORDER_FILLING_RETURN ;
      sellstop_req3.expiration   = ORDER_TIME_GTC ;
      
   
   if ( OrdersTotal ()== 0 && PositionsTotal () == 0 )
      {
         OrderSend (order_req, order_res);
         OrderSend (buylimit_req1, buylimit_res1);
         OrderSend (buylimit_req2, buylimit_res2);
         OrderSend (sellstop_req3, sellstop_res3);
      }
   return ( INIT_SUCCEEDED );
  }
void OnDeinit ( const int reason)
  {

  
  }
 
 void OnTick ()
  {
       int count_buy_limits = 0 ;
       for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
        {
           if (o_orderInfo.OrderType()== ORDER_TYPE_BUY_LIMIT )
               {
                  count_buy_limits++;
               }
        }   
       if (count_buy_limits < 2 || PositionsTotal () == 0 )
         {
             for ( int r= PositionsTotal ()- 1 ; r>= 0 ; r--)
               {
                   ulong ticket= PositionGetTicket (r);
                  o_trade.PositionClose(ticket);   
               }  
      
             for ( int o= OrdersTotal ()- 1 ; o>= 0 ; o--)
               {
                   ulong ticket1= OrderGetTicket (o);
                  o_trade.OrderDelete(ticket1);
               }
       ExpertRemove ();
         }
  }
//+------------------------------------------------------------------+
Dosyalar:
001.jpg  173 kb
 
Fergert Фергерт :

Derleme hatası yok..

BURADA KODU:

Örneğime ve örneğinize dikkatlice bakın. Akılsızca kopyalayamazsınız. Biraz düşünmen gerek. Kodunuzda bir hata arayın.

Kodu doğru şekilde girin (düğmesini kullanarak kod İlk defa mesajınızı düzelttim.

 
Vladimir Karputov :

Örneğime ve örneğinize dikkatlice bakın. Akılsızca kopyalayamazsınız. Biraz düşünmen gerek. Kodunuzda bir hata arayın.

Kodu doğru girin (düğmeyi kullanarak - mesajınızı ilk kez düzelttim)

Evet, anladım...
 
Fergert Фергерт :
Evet, anladım...

Evet, döngüyü atlarsanız, her yinelemede şunları yapmanız gerektiğini unuttunuz:

       if (m_order.SelectByIndex(i))     // selects the pending order by index for further access to its properties

Referans:

SelectByIndex

Belirtilen dizine daha fazla erişim için bir sipariş seçer

Документация по MQL5: Стандартная библиотека / Торговые классы / COrderInfo / SelectByIndex
Документация по MQL5: Стандартная библиотека / Торговые классы / COrderInfo / SelectByIndex
  • www.mql5.com
SelectByIndex(int) - COrderInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov :

Evet, döngüyü atlarsanız, her yinelemede şunları yapmanız gerektiğini unuttunuz:

Referans:

SelectByIndex

Belirtilen dizine daha fazla erişim için bir sipariş seçer

Evet. Canım ..... ÇOK TEŞEKKÜR EDERİM VLADIMIR !!!!)))) Başarılar ......
 
Tüm forum kullanıcılarına iyi günler. Kaydırıcıları hiç çözemiyorum. Daha doğrusu, iki hareketli ortalamanın okumaları mql5'te nasıl alınır? Yardımı okudum ama hala çözemedim. 10 ve 15 barlarda hızlı MA okumaları yapmak istiyorum. Ayrıca 10 ve 15 barlarda yavaş bir MA, ancak çiftin kafası zaten karıştı, tamamen karıştı. Standart kodu ve referansları baz aldım. Lütfen bu kodu nasıl uygulayacağımı bana bildirin. Hepinize şimdiden teşekkürler.
 

Tünaydın.

Açık fırsatlarla, " sanal barındırma "ya geçiş gerçekleşmiyor mu?

Yoksa başka bir sebep mi?


İşlemler kapandı, zaten taşınmıyor.

Expert Advisor her yerde çalışır ve yükler, ne gibi sorunlar olabilir?

Виртуальный хостинг для MetaTrader 5
Виртуальный хостинг для MetaTrader 5
  • www.mql5.com
Самый быстрый виртуальный выделенный сервер (VPS) для трейдинга на форексе от производителей терминала MetaTrader 4/5
 
Aleksandr Prishenko :

Tünaydın.

Açık fırsatlarla, " sanal barındırma "ya geçiş gerçekleşmiyor mu?

Yoksa başka bir sebep mi?


İşlemler kapandı, zaten taşınmıyor.

Expert Advisor her yerde çalışır ve yükler, ne gibi sorunlar olabilir?

Sorun danışmanda. Bu arada, sanal barındırma dll için kurallar yasaktır.