量化交易系统

MT5-Strong K BreakOut

  • 型号:
Main Image

此项目为 MT5 交易信号指标。

此指标主要作用:协助您及时发现波段行情的起点。

MT4版本,请移步: https://www.mql5.com/zh/market/product/79151


===== 适用品种 ====

可用于:外汇、期货、股票、指数等

==== 适用周期 ====

可用于各个时间周期,无任何限制,且各周期信号质量表现都很好。请根据自已的交易风格选择相应时间周期。

如果是短线炒手或日内交易者,请尽量在M1或M5周期使用。

如果是中长线交易者,请尽量选择H1级别或以上的周期。


重要提示:

用于有间隔交易时段的品种,如股票、期货等,请 主动 忽略开盘时的提示信号,收盘前也请忽略提示信号,以免产生较大风险。

股票、期货等品种,开盘时多空竞争激烈,行情变化较大,信号质量较差,请根据不同品种的交易时段,人工判断过滤。

建议图表采用黑色底色。


==== 使用方法 ====

1、红色K线柱表示向上突破,做多交易提示,买入。

2、绿色K线柱表示向下突破,做空交易提示,卖出。

3、建议采用挂单方式交易

  1. 当上一根K线提示买入时,在上一根K线的最高价 往上加 1 个点挂buy stop单等待进场。
  2. 当上一根K线提示卖出时,在上一根K线的最低价 往下减 1 个点挂sell stop单等待进场。
  3. 如果接下来2根K线没有进场,请取消挂单,等待下一个提示信号。

4、关于出场

行情往持仓有利方向行进到信号K线同等点数时,主动盈利平仓离场。

  1. 如果所建仓位较大,可分批离场:
    A:行情往持仓有利方向行进到信号K线高度点数的一半时,主动盈利平仓50%离场。
    B:行情继续到信号K线高度同等点数时,剩下的仓位离场。
  2. 止损离场,当行情往相反方向超过信号K线的最高价,卖单止损平仓离场;如果行情往相反方向超过信号K线的最低价,买单止损平仓离场;

5、关于单量:

  1. 每次挂单前请根据信号K线的点数,计算你如果交易失败,会亏损的点数,根据你的风险承受能力,在止损点数的基础上计算出下单量。
  2. 基础原则:K线柱点数越大,单量越小
  3. 一般情况,应用周期越小,信号K线的点数越小,止损点数也相应减少,可知当提高单量。

6、如果配合大周趋势指标,先预判当前趋势,再根据此信号顺势而为,将提升准确率。


==== 参数说明====

  1. Volatility Period: 数值越小,灵敏度超高,信号数量越多,质量越差
  2. Volatility Level Check: 建议取值在1.5-3.0之间,数量越大,信号越小
  3. K Strong Level Up: 关于做多的信号过滤,信号上限数值,建议在 400 至500 之间,大于500无效。数值越大,信号越少。
  4. K Strong Level Down: 关于做空的信号过滤,信号下限数值,建议在 -400 至 -500 之间,小于 - 500无效。数值越小,信号越少。
  5. Alert Messe Show: 如果选 Yes,信号出现时,会弹窗提示息。
  6. Send Mail Message: 如果选 Yes, 信号出现时,会主动发送邮件提示。 (先须先在工具-->选项-->邮件内设置好相关内容)


V1.1 升级, 为了EA能读取信号,特为此升级,用法如下:

获得信号示例:

请注意,不要读取当前K线的信号,因为没有收盘前,当前K线的信号是不准确的,至少要读取前一根K线的信号。

请注意,读取的Bufferindex, 0 为多,1为空,因为之前为了画彩K,占用了前面的Buffer。

为了方便引用,我采用的函数方式获取。

做多示例:

double SignalBuy = iGetIndicator(NULL,PERIOD_CURRENT,0,1);

if(SignalBuy!=EMPTY_VALUE)

{

//做多信号达成,你可开多单或进行相应管理

break;

}

else

{

Print("Buy Signal: Not available, pause");

}

做空信号:

double SignalSell = iGetIndicator(NULL,PERIOD_CURRENT,1,1);

if(SignalSell!=EMPTY_VALUE)

{

//做空信号达成,你可开空单或进行相应管理

Print("Sell Signal: OK, do something");

break;

}

else

{

Print("Sell Signal: Not available, pause");

}

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

double iGetIndicator(string symbol,

ENUM_TIMEFRAMES tf,

int bufferindex,

int shift)

{

int handle=iCustom(symbol,tf,"EA999 Strong K Breakout 1.2");

if(handle<0)

{

Print("iCustom indicator create error:",ErrorDescription(GetLastError()));

return(-1);

}

else

return(CopyBufferMQL4(handle,bufferindex,shift));

}



//+------------------------------------------------------------------+

double CopyBufferMQL4(int handle,int index,int shift)

{

double buf[];

switch(index)

{

case 0:

if(CopyBuffer(handle,0,shift,1,buf)>0)

return(buf[0]);

break;

case 1:

if(CopyBuffer(handle,1,shift,1,buf)>0)

return(buf[0]);

break;

case 2:

if(CopyBuffer(handle,2,shift,1,buf)>0)

return(buf[0]);

break;

case 3:

if(CopyBuffer(handle,3,shift,1,buf)>0)

return(buf[0]);

break;

case 4:

if(CopyBuffer(handle,4,shift,1,buf)>0)

return(buf[0]);

break;

case 5:

if(CopyBuffer(handle,5,shift,1,buf)>0)

return(buf[0]);

case 6:

if(CopyBuffer(handle,6,shift,1,buf)>0)

return(buf[0]);

case 7:

if(CopyBuffer(handle,7,shift,1,buf)>0)

return(buf[0]);

case 8:

if(CopyBuffer(handle,8,shift,1,buf)>0)

return(buf[0]);

case 9:

if(CopyBuffer(handle,9,shift,1,buf)>0)

return(buf[0]);

case 10:

if(CopyBuffer(handle,10,shift,1,buf)>0)

return(buf[0]);

case 11:

if(CopyBuffer(handle,11,shift,1,buf)>0)

return(buf[0]);

break;

default:

break;

}

return(EMPTY_VALUE);

}



欢迎提出建议或意见。

如果您购买了此产品,请联系,发送站内私信或者评论。

谢谢!