外汇EA
有截图,求指教,外汇EA加仓仓位的源码怎么写?EA已经完成的99%了,只缺加仓仓位...
回复:0  浏览:344
  • 楼主admin 圈主
  • 2020-01-01 13:11
我编写的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);}
 }
 }
}