一个EA问题~困扰很久,向高手们求助

Discussion in 'MetaTrader' started by Kino, Mar 16, 2010.

  1. [​IMG]

    上图中
    绿色横向箭头:买入
    红色横向箭头:卖出
    黄色横向箭头:平仓

    图中只有第一次交易是正确的,后面的交易没有在应该开仓的地方开仓:( 唉~~~

    交易思想很简单::)
    价格上穿“高黄线”做多,下穿“低黄线”做空,多头头寸在下穿“低红线”平仓,空头头寸在上穿“低红线”平仓。

    希望达到的效果::D
    如果前一次交易是盈利的,
    下一次信号发出时观望不做,等下下次信号发出才入场交易。如果前一次交易是亏损的,那么下一次信号有效。

    图中第二次交易,不应该执行开空,而应该在绿色向下箭头处开多,在橙色向上箭头处平仓;橙色向上箭头右边是下一次信号,因为之前的交易是盈利的,所以不交易,在蓝色向下箭头处才开空头,然后在紫色叉叉处平仓,因为盈利,所以之后的向下突破不交易,然后在紫色向下箭头处做空。

    请教各位老师~:D
    怎样写才能避免每一次信号都发单呢?(我有点笨,请高手们指点):D:D


    各位老师指导下吧~:D

    我的邮件: zhasam2028@163.com
     
  2. nix

    nix

    看你怎么定义“第一次” 记住ea没有一个tick来都计算一次。
    关于赢利嘛,你遍历order的时候是是可以遍历历史订单的,实在不行用全局变量或者数组吧。
     
  3. 感谢前辈指导

    如果EA重启或者掉线,我的全局变量和数组怎样在重新连接后不初始化呢?
     
  4. MT4 MA例子有,不是空仓不下单
     
  5. nix

    nix

    我说的是F3能看到的全局变量哦
    GlobalVariableCheck
    GlobalVariableDel
    GlobalVariableGet
    GlobalVariableName
    GlobalVariableSet
    GlobalVariableSetOnCondition
    GlobalVariablesDeleteAll
    GlobalVariablesTotal

    A group of functions intended for working with global variables.

    Global variables of the client terminal should not be mixed up with variables declared in the global scope of the MQL4 program.

    Global variables are kept in the client terminal within 4 weeks since the last access, then they will be deleted automatically. An access to a global variable is not only setting of a new value, but reading of the global variable value, as well.

    Global variables of the client terminal are accessible simultaneously from all MQL4 programs launched in the client terminal.



    实在不行就用个csv文件来存储,可以了吧
     
  6. 弱弱的追问下~
    获取最近一笔已平仓交易的cmd的代码~~:D
     
  7. for(int y=OrdersTotal();y>0;y--)
    {
    if(OrderSelect(y,SELECT_BY_POS,MODE_HISTORY)==false) break;
    if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
    {
    if(OrderType==OP_BUY)
    }
    }
     
  8. 把你的指标代码发给我,我帮你搞定!
    介个不算过分吧。
    vknow@163.com
     
  9. 个人觉得这个交易策略在EA来做,不可行。线型的交易信号不稳定。