ヾ(´・ω・`)ノ゙

2014年12月25日

MT4のバックテストで裁量トレードの練習(簡易的な裁量トレードテスタ)


あまり裁量トレードはしないのですが
裁量トレードの練習をしたくなって裁量トレードを練習できるEAを作りました

本当はInclude\ControlsにあるDialog.mqhを使ってなんかしたかったのですが
EAのバックテストだとCAppDialogを使おうとしてもうまく描画されません
これはChartID()関数のせいなのかなと思っています
ObjectCreate()でチャートIDを指定するとき、引数にChartID()を指定すると
オブジェクトが作成できないけど自身を指す 0 を指定するとオブジェクトが描画できます
試しに
Include\ChartObjects\ChartObject.mqh の
Line 143: chart_id=ChartID();

Include\Charts\Chart.mqh の
Line 119: void Attach(void) { m_chart_id=ChartID(); }
の部分のChartID()を 0 に書き換えてみたらEAに記述したCAppDialogがバックテストでも表示されました

でも、バックテストだとOnChartEventが機能しないみたいで(たしかOnTimerもだめ)
ボタンクリックとかのイベントをOnChartEventで拾えません
なので結局 OBJ_BUTTON と OBJ_EDIT で作りました
ボタンをクリックしたらOBJPROP_STATEがtrueになるので
次回のティックでそれを検知してボタンに応じた処理をする感じになりました
(ボタンを押した瞬間ではなく次ティックでポジションをとるようなものになってしまった)

外観はこんな感じです
2014_12_25_076.png

発注君みたいなものをMQLで作ろうと思ったらOnChartEventを使うことになると思うのですが
バックテストだと機能しないので発注ツール兼裁量テスターというのを作ろうと思ったら
それぞれだいぶ異なる処理になるっぽいなぁと感じました

細かいエラーチェックなどが入っていなく、意図しない動作をしたりするかもしれませんが
ビジュアルモードのバックテストでしか動作しないようにしてあります

作った後、「これやっぱ右側に表示するより左に表示したほうがいいか?」
なんて思ったのですが時すでにお寿司、コーナーを変更するだけでは対応できないものになっちゃってますた
気が向いたときに直そう・・・(^ω ^ ;)

※Lots、SL、TPはテスト中に変更できます、SLTPはpipsを入力してください
CLOSE_SELL,CLOSE_BUYはそれぞれ一番直近のポジションをクローズします
CLOSE_ALLは全てのポジションをクローズします

チャートの右端と表示されているオブジェクトが被ってしまうという場合は
ツールバーの部分がこうなっているのを確認して
2014_12_25_077.png

この三角をつまんでずらしてください
(この三角はグリッドの色をチャートの背景色に近い色にしているとかなり見にくくなっていると思います)

2014_12_25_078.png

ちなみにオートスクロールをオフにすると左下にこんなのが出ます

2014_12_25_079.png

これは虫眼鏡マークなんかを押したときに基点となる部分を指定しているようです
(つまんで横にずらせます)

ここにファイルを置いときます
( ´・ω・`)つhttp://ux.getuploader.com/hage_fx/download/16/__________TRADE_TEST.mq4


これを使ってちょっと練習してみたのですが裁量トレードダメダメでした、難しいなぁ・・・(´・ω・`)



posted by hage at 18:04| MT4 | このブログの読者になる | 更新情報をチェックする