|
本帖最后由 az2392901 于 2019-10-11 03:10 编辑 我编写的EA,同一个货币对同方向,最大只允许存在两笔订单,比如一根80均线,欧美K线收在80均线上方,符合开仓条件的情况下最多同时存在两笔多单然后就不开仓了。 我同时持有两笔0.01手的多单,经过计算发现第二笔订单的风险低,并且收益远高于第一笔订单,我想设第一笔交易为0.01手的试仓单,而第二笔订单是0.1手。该写入什么代码? 需要源代码,求各位指教,拜谢。 ![]()
void runModel1(){ int totalPosition = countPositionByMagicSymbol(156537,M1_Symbol,0); if( 0>0 && (MarketInfo(M1_Symbol,MODE_ASK)-MarketInfo(M1_Symbol,MODE_BID))>0*M1_Point )return; if((2!=0)&&(!isNewBar(M1_Symbol,0,1))) return; bool canRunCheck=false; int maxOrder=2; if(!1)maxOrder=1; if(totalPosition<maxOrder)canRunCheck=true; if(maxOrder>1&&totalPosition>=1){ if(TimeCurrent()<(Model1_lastOpenOrderTime+0*60))canRunCheck=false; if(!checkCanOpenMaxOrder(0,0,M1_Symbol,156537,M1_Point))canRunCheck=false; } if(0>0&&totalPosition>0)breakEven(156537,M1_Symbol,0,M1_Point); if(0>0&&0<=2&&totalPosition>0)trailStop(156537,M1_Symbol,0,50,20,M1_Point); if(canRunCheck){ if(checkM1S1()){ int orderType=OP_BUY;if(0>0)orderType=OP_SELL; if(1>0){ double lots = getlots(0.01,0,2,40,M1_Symbol,M1_Mt,0.1,100); int sl= 40; int tp = 200; int ticket = openposition( M1_Symbol, orderType, lots, sl, tp, 156537, 1, 1, 0, 0, 20, 720, M1_Point, M1_Mt, 0); Model1_lastOpenOrderTime = getOrderOpenTime(ticket);} } } } |
mql4编程中文手册