大家好!今天我们来聊聊一款在MetaTrader 5上非常有用的交易系统——JPAlonso-modoki。这款系统的设计灵感来源于对价格走势的投票机制,帮助我们更好地判断市场走向。
系统参数
该系统基于200周期的包络线,开发参数为0.35。以下是关键的代码部分:
//+------------------------------------------------------------------+ //| "判断"价格上涨的条件. | //| 输入:没有. | //| 输出:价格上涨的“投票”数量. | //| 备注:没有. | //+------------------------------------------------------------------+ int CSignalEnvelopes::LongCondition() { int result=0; int idx =StartIndex(); double close=SymbolInfoDouble(Symbol(),SYMBOL_ASK); double upper=Upper(idx); double lower=Lower(idx); double width=upper-lower; double ma=lower+width/2; if(close<=lower || (close<upper && close>ma)) result=100; //--- 返回结果 return(result); } //+------------------------------------------------------------------+ //| "判断"价格下跌的条件. | //| 输入:没有. | //| 输出:价格下跌的“投票”数量. | //| 备注:没有. | //+------------------------------------------------------------------+ int CSignalEnvelopes::ShortCondition() { int result =0; int idx =StartIndex(); double close=SymbolInfoDouble(Symbol(),SYMBOL_BID); double upper=Upper(idx); double lower=Lower(idx); double width=upper-lower; double ma=lower+width/2; if(close>=upper || (close>lower && close<ma)) result=100; //--- 返回结果 return(result); } //+------------------------------------------------------------------+
交易信号的生成
在这款系统中,我们可以利用“Tick”事件来生成信号。请看以下代码:
//+------------------------------------------------------------------+ //| "Tick" 事件处理函数 | //+------------------------------------------------------------------+ void OnTick() { if(PositionSelect(Symbol())) return; if(TimeCurrent() < D'2012.10.08 10:55') return; ExtExpert.OnTick(); }
测试结果
上面的代码是系统的实际操作,下面是测试结果:

希望这篇文章能帮助大家更好地理解这个系统的运作原理,提升我们的交易水平!如果你有任何问题或想法,欢迎在评论区留言讨论哦!
评论 0