2评论

1收藏

有截图,求指教,外汇EA加仓仓位的源码怎么写?EA已经完成的99%了,只缺加仓仓位...

avatar az2392901 | 1139 人阅读 | 2 人评论 | 2019-10-11

本帖最后由 az2392901 于 2019-10-11 03:10 编辑

我编写的EA,同一个货币对同方向,最大只允许存在两笔订单,比如一根80均线,欧美K线收在80均线上方,符合开仓条件的情况下最多同时存在两笔多单然后就不开仓了。

我同时持有两笔0.01手的多单,经过计算发现第二笔订单的风险低,并且收益远高于第一笔订单,我想设第一笔交易为0.01手的试仓单,而第二笔订单是0.1手。该写入什么代码?

需要源代码,求各位指教,拜谢。
QQ截图20191011025857.jpg


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);}
  }
  }
}


""
还没有人打赏,支持一下

评论|共 2 个

戴菲颖

发表于 2019-10-19 19:03:00 | 显示全部楼层

:handshake:time::victory:

hunter2018

发表于 2019-11-9 10:47:49 | 显示全部楼层

价格判断条件,如果持仓单数量=1,第2个开仓单的开仓量=0.1就可以了呀

您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则