初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1281

 
Vladimir Karputov:

在代码Min Max 中计算N个Bars Martingal的 四种挂单的例子

Vladimir Karputov:

在代码中计算四种挂单类型的例子Min Max for N Bars Martingale 2

VladimirKarputov:

在代码Min Max for N Bars Martingale 2 中计算四种挂单类型的一个例子




弗拉基米尔,由于某些原因,它不计入限时订单????。

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

 
Fergert Фергерт:


弗拉基米尔,由于某些原因,不计入限额的订单????。

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

1.正确插入代码
2.显示所有的代码。
3.是否有任何编译错误
4.带有头寸和挂单的窗口截图
 
Vladimir Karputov:
1.正确插入代码
2.显示所有的代码
3.是否有任何编译错误
4.带有头寸和挂单的窗口截图

没有编译错误。

这里是代码。

#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();
         }
  }
//+------------------------------------------------------------------+
附加的文件:
001.jpg  173 kb
 
Fergert Фергерт:

没有编译错误...

这里是代码。

仔细回顾我的例子和你的例子。你不能无意识地复制。你必须要想一想。寻找你的代码中的错误。

正确插入代码(使用编码 按钮 - 我第一次纠正了你的信息)

 
Vladimir Karputov:

仔细看看我的例子和你的例子。你不能无意识地复制。你必须要想一想。寻找你的代码中的错误。

正确插入代码(使用按钮 - 我第一次纠正了你的信息)

是的,知道了...
 
Fergert Фергерт:
是的,都有了...

是的,你忘了,如果你绕过循环,你必须在每次迭代时进行BREAK。

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

参考资料。

按索引选择

选择一个订单,以便通过指定的索引进一步访问。

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

是的,你忘了,如果你绕过循环,你必须在每次迭代时进行BREAK。

参考资料。

按索引选择

选择一个订单,以便通过指定的索引进一步访问。

是的,我的坏.....非常感谢弗拉基米尔!!!!))))祝您好运!......
 
所有论坛成员下午好。我搞不清楚如何使用滑块。我看了帮助,但还是搞不清楚。我读了帮助,但还是不明白。我想在10条和15条上读取快速MA。我想在10条和15条上得到缓慢的MA,但我的头脑越来越混乱了。我很困惑,我使用了标准代码和帮助。帮助谁知道如何实现这个代码。提前感谢。
 

下午好。

交易开放时不迁移到"共享主机"?

还是其他原因?


我已经关闭了交易,反正它也不迁移了。

专家工作,到处都在加载,可能是什么问题?

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

下午好。

交易开放时不迁移到"共享主机"?

还是其他原因?


我已经关闭了交易,反正它也不迁移了。

专家顾问工作,并且到处都在加载,可能是什么问题?

问题出在EA上。顺便说一下,共享主机的规则禁止dlls。