Sergey Korsunov:
问题是
,我实际上不懂语言,我需要自动打开几个vp的订单,我放出了这个简单的代码(文件附后),但结果是笨拙的,
根据计划应该打开6个vp,但只打开3个vp,但有时会打开全部6个,但后来又不再像原来那样工作了(我想这可能是由于小数点后 的数字,如块中,没有日元,所有工作正常。
请帮助解决这个问题。
还有,如果不难提示如何规定,那就有可能切换只买或卖的交易开盘。
有许多原因使你无法开出订单。假设在第一个交易日,有3个订单被打开
在下一个嘀嗒声中,在程序的最开始,如果(OrdersTotal() >= OrderCount) 返回;这将被返回,因为订单的数量大于OrderCount,而OrderCount= 1。
程序的其余部分将被忽略。
从这几句话来看。
//| Copyright 2021, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Software Corp." #property link "https://www.mql5.com"
该程序是由MetaQuotes软件公司开发的。 向他们征求意见!
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
- www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
试试这种方式--更短、更精确。如果你自己搞清楚了,你就会成为一个编程的冠冕堂皇者。把你的光标放在这个词上,然后按F1键
//+------------------------------------------------------------------+ //| Test 3.mq4 | //+------------------------------------------------------------------+ #property strict extern double Lot = 0.01; extern int Slip = 3; extern int Magic = 777; string name[10]={"AUDJPY","CHFJPY","CADJPY","AUDCAD","AUDCHF","CADCHF"}; int cnt[6]; void OnTick() { ArrayInitialize(cnt, 0); // Обнуление счетчиков // Подсчет ордеров по каждому торговому инструменту for(int n=OrdersTotal()-1; n>=0; n--) { if(!OrderSelect(n,SELECT_BY_POS))continue; for(int k=0; k<6; k++) if(OrderSymbol()==name[k]) cnt[k]++; } // Открытие ордеров по каждому торговому инструменту for(int k=0; k<6; k++) if(!cnt[k]) int ticket = OrderSend(name[k],OP_BUY, Lot, MarketInfo(name[k],MODE_ASK), Slip, 0, 0, "", Magic); }
问题是
,我实际上不懂语言,我需要自动打开几个vp的订单,我放出了这个简单的代码(文件附后),但结果是笨拙的,
根据计划应该打开6个vp,但只打开3个vp,但有时会打开全部6个,但后来又不再像原来那样工作了(我想这可能是由于小数点后 的数字,如块中,没有日元,所有工作正常。
请帮助解决这个问题。
如果我不难,我需要帮助来写,这样我就可以把交易转为只买或卖。
文件:危险的文件被删除了