MetaTrader5
DoubleZigZagでMetaTrader 5を活用する方法
アイデアの作者はMaksimで、mq5コードの作者はbarabashkakvnです。このエキスパートアドバイザーは、2つのZigZagインジケーターを使って分析を行います。小さいZigZagはパラメータが (13.5,3)、大きいZigZagはパラメータが8倍されたものです (13*8,5*8,3*8)。//--- インジケーターのハンドルを作成
handle_iCustom=iCustom(Symbol(),Period(),"Examples\ZigZag",13,5,3);
//--- ハンドルが作成できなかった場合
if(handle_iCustom==INVALID_HANDLE)
{
//--- 失敗を通知し、エラーコードを出力
PrintFormat("iCustomインジケーターのハンドル作成に失敗しました。シンボル %s/%s, エラーコード %d",
Symbol(),
EnumToString(Period()),
GetLastError());
//--- インジケーターが早期に停止
return(INIT_FAILED);
}
//--- iCustomX8インジケーターのハンドルを作成
handle_iCustomX8=iCustom(Symbol(),Period(),"Examples\ZigZag",13*8,5*8,3*8);
//--- ハンドルが作成できなかった場合
if(handle_iCustomX8==INVALID_HANDLE)
{
//--- 失敗を通知し、エラーコードを出力
PrintFormat("iCustomX8インジケーターのハンドル作成に失敗しました。シンボル %s/%s, エラーコード %d",
Symbol(),
EnumToString(Period()),
GetLastError());
//--- インジケーターが早期に停止
return(INIT_FAILED);
}
トレードの判断を下すために、大きいZigZagの最後のピークの2つの脚 (13*8,5*8,3*8) を分析し、その脚に含まれる小さいZigZag (13,5,3) のピークの数をカウントします。もしBUYポジションを開くシグナルが出た場合、すべてのSELLポジションはクローズされます。逆に、SELLポジションを開くシグナルが出た場合、すべてのBUYポジションがクローズされます。エキスパートアドバイザーのパラメータ:k: 大きいZigZagの脚にある小さいZigZagのピーク数の比率k2: 大きいZigZagのピーク間の価格差の比率例:大きいZigZag (13*8,5*8,3*8) は赤で表示され、小さいZigZag (13,5,3) は黄色です。それぞれ、ABC は大きいZigZag (13*8,5*8,3*8) のピークです。脚 AB と AC には、小さいZigZag (13,5,3) の9つのピークが含まれています。テスト結果 (EURUSD,M1):
2017.08.10