読者です 読者をやめる 読者になる 読者になる

FXボーグ | テクニカル実験室

テクニカル分析を使った自動売買プログラムの開発に挑戦!

スポンサーリンク

mql5 ウィザード用に自作のインジケーターをライブラリー化。思ったより簡単でした。

開発日記 MQL5ウィザード

EAを毎回個別に作るのは大変なので、MQL5のウィザードに対応してみました。MQL5ウィザードについてはこちら ('MQL5ウィザード:新バージョン'

 

まずは自作のインジケーターをどうやって組み込んだらいいか悩みましたが、こちら記事を参考にして、CCIの部分を自作のCCIに変更してみました。

MQL5 Wizard - Trade Signals Based on Hammer/Hanging Man + CCI

 

追加するシグナルはMySignalsフォルダーに配置するのが定番のようです。 

f:id:fxborg:20151204075415p:plain

 

注目すべきはインジケーターをクラス化する際にCiCustom を使ってに既存のex5ファイルを直接呼べる点です。

 

CiCustom m_CCI;

~~~~~~~~~~~~~~~~~~

//--- add object to collection
if(!indicators.Add(GetPointer(m_CCI)))
{
printf(__FUNCTION__+": error adding object");
return(false);
}
MqlParam parameters[6];
//---
parameters[0].type=TYPE_STRING;
parameters[0].string_value="CCI_on_StepChannel.ex5";
parameters[1].type=TYPE_DOUBLE;
parameters[1].double_value=m_scaleFactor;
parameters[2].type=TYPE_INT;
parameters[2].double_value=m_smoothing;
parameters[3].type=TYPE_INT;
parameters[3].double_value=m_volatilityPeriod;
parameters[4].type=TYPE_INT;
parameters[4].double_value=m_periodCCI;
parameters[5].type=TYPE_INT;
parameters[5].double_value=m_applied;
//--- initialize object

if(!m_CCI.Create(m_symbol.Name(),m_period,IND_CUSTOM,6,parameters))/////maybe 0 instead of m_period
{
printf(__FUNCTION__+": error initializing object");
return(false);
}
//--- ok

(該当箇所)

 

さっそくコンパイルして、使ってみました。

f:id:fxborg:20151204081138p:plain

(一旦Metaエディターを再起動しないと認識されないようです。)

これで既存のロジック(資金管理、ドテン、トレーリングストップ)と組み合わせることが可能となり、インジケーター作りのみに集中することができます。

 

こちらからどうぞ

上記の構成で保存してください。