初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1281 1...127412751276127712781279128012811282128312841285128612871288...1503 新评论 Fergert Фергерт 2021.01.28 05:29 #12801 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++;}} Vladimir Karputov 2021.01.28 07:19 #12802 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.带有头寸和挂单的窗口截图 Fergert Фергерт 2021.01.28 07:36 #12803 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 Vladimir Karputov 2021.01.28 07:58 #12804 Fergert Фергерт: 没有编译错误...这里是代码。 仔细回顾我的例子和你的例子。你不能无意识地复制。你必须要想一想。寻找你的代码中的错误。 正确插入代码(使用 按钮 - 我第一次纠正了你的信息) Fergert Фергерт 2021.01.28 08:01 #12805 Vladimir Karputov:仔细看看我的例子和你的例子。你不能无意识地复制。你必须要想一想。寻找你的代码中的错误。正确插入代码(使用按钮 - 我第一次纠正了你的信息) 是的,知道了... Vladimir Karputov 2021.01.28 08:13 #12806 Fergert Фергерт: 是的,都有了... 是的,你忘了,如果你绕过循环,你必须在每次迭代时进行BREAK。 if(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its properties 参考资料。 按索引选择 选择一个订单,以便通过指定的索引进一步访问。 Документация по MQL5: Стандартная библиотека / Торговые классы / COrderInfo / SelectByIndex www.mql5.com SelectByIndex(int) - COrderInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Fergert Фергерт 2021.01.28 08:19 #12807 Vladimir Karputov:是的,你忘了,如果你绕过循环,你必须在每次迭代时进行BREAK。参考资料。 按索引选择 选择一个订单,以便通过指定的索引进一步访问。 是的,我的坏.....非常感谢弗拉基米尔!!!!))))祝您好运!...... Monter10000 2021.01.28 10:11 #12808 所有论坛成员下午好。我搞不清楚如何使用滑块。我看了帮助,但还是搞不清楚。我读了帮助,但还是不明白。我想在10条和15条上读取快速MA。我想在10条和15条上得到缓慢的MA,但我的头脑越来越混乱了。我很困惑,我使用了标准代码和帮助。帮助谁知道如何实现这个代码。提前感谢。 Aleksandr Prishenko 2021.01.29 11:39 #12809 下午好。 交易开放时不迁移到"共享主机"? 还是其他原因? 我已经关闭了交易,反正它也不迁移了。 专家工作,到处都在加载,可能是什么问题? Виртуальный хостинг для MetaTrader 5 www.mql5.com Самый быстрый виртуальный выделенный сервер (VPS) для трейдинга на форексе от производителей терминала MetaTrader 4/5 Vladimir Karputov 2021.01.29 14:18 #12810 Aleksandr Prishenko:下午好。交易开放时不迁移到"共享主机"?还是其他原因?我已经关闭了交易,反正它也不迁移了。专家顾问工作,并且到处都在加载,可能是什么问题? 问题出在EA上。顺便说一下,共享主机的规则禁止dlls。 1...127412751276127712781279128012811282128312841285128612871288...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在代码Min Max 中计算N个Bars Martingal的 四种挂单的例子
在代码中计算四种挂单类型的例子Min Max for N Bars Martingale 2
在代码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++;
}
}
弗拉基米尔,由于某些原因,不计入限额的订单????。
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.正确插入代码
没有编译错误。
这里是代码。
没有编译错误...
这里是代码。
仔细回顾我的例子和你的例子。你不能无意识地复制。你必须要想一想。寻找你的代码中的错误。
正确插入代码(使用 按钮 - 我第一次纠正了你的信息)
仔细看看我的例子和你的例子。你不能无意识地复制。你必须要想一想。寻找你的代码中的错误。
正确插入代码(使用按钮 - 我第一次纠正了你的信息)
是的,都有了...
是的,你忘了,如果你绕过循环,你必须在每次迭代时进行BREAK。
参考资料。
按索引选择
选择一个订单,以便通过指定的索引进一步访问。
是的,你忘了,如果你绕过循环,你必须在每次迭代时进行BREAK。
参考资料。
按索引选择
选择一个订单,以便通过指定的索引进一步访问。
下午好。
交易开放时不迁移到"共享主机"?
还是其他原因?
我已经关闭了交易,反正它也不迁移了。
专家工作,到处都在加载,可能是什么问题?
下午好。
交易开放时不迁移到"共享主机"?
还是其他原因?
我已经关闭了交易,反正它也不迁移了。
专家顾问工作,并且到处都在加载,可能是什么问题?
问题出在EA上。顺便说一下,共享主机的规则禁止dlls。