某インジのシグナルをEA化して改造してみる(3)
公開日:
:
FX
軽く各関数を組み立ててみました。
int start() { if (isNewBar()) { int c=CountPositions(); int ret=0; if (c>0) { TrailingStopLoss(); } else { if (OrderSignal()=="BUY") { ret=OrderBuyPosition(); } else if (OrderSignal()=="SELL") { ret=OrderSellPosition(); } } } return(0); }
一応解説です。
isNewBar()関数で新しい足が出たら以下を実行する。
まずは現在ポジションを保有しているかどうか、ポジション数を数えて変数cに入れる。
ポジションがある場合はTrailingStopLoss()でストップを上げる。
ポジションが無い場合は買いシグナルか売りシグナルが出ているかどうかチェック。出ている場合はオーダーする関数を実行。
こんなところで最初はスタートします。もちろんこのままバックテストすると…..綺麗な右肩下がり(笑)
今後の課題を探る
VisualModeで動かしながら確認して、修正点を探ってみます。そして気がついた点は
1)1時間足のEAだとストップが30~50では狭すぎる感じ。
2)ポジションを取る位置がボリンジャーバンドの2σよりはみ出した位置は悪い。
3)トレンドレスの場面をできるだけ避ける必要がありそう。
1)は含み益を見ながら動かすようにしないとダメですね。現在考えているものは「含み益30pipsあれば切り上げる」という感じのルールです。
2)はシグナルが出た場合、ボリバンでの位置を確認して見送るか、それとも指値を入れるか。
3)は、もう少し大きい足のトレンドを見るようにするか?例えば4時間足のMACDをフィルタにするとか。
とりあえず(1)はトレイリングを始めるのは含み益30pipsとしてソースを書き換えました。
extern int CUTOUT=30;
と加筆。続いて現在の利益を調べる関数GetProfit()を追加。
double GetProfit() { double pf=0; for(int i=0; istart()関数を以下のように修正してみました。
if (c>0) { if (GetProfit()>(CUTOUT*POINT)) MaTrailingStopLoss(); } else { if (OrderSignal()=="BUY")これをVisualで眺めて続けていきたいと思います。
Sponsored Link
関連記事
-
【読書感想文】映像メディアのプロになる!
映像メディア産業の構造、そして映像制作の基礎から放送の領域までカバーしている。テレビ業界の構造と制作
-
可変式 NDフィルター の比較撮影
デジタルカメラでの動画撮影で欠かせないのがNDフィルター。最近は安い製品も色々でてきていて購入しやす
-
GH3と5D Mark II の色を合わせられるのか?実験開始!
相変わらず微妙なお天気が続きます。起きたらお昼!?という訳でブログの更新も大幅に遅刻^^; 世間では
-
【雑談】Rode FIlmmaker kit と NOKTON 10.5mmと Mac OSX El Capitan
日曜の夜なので雑談というか特に書くことが無いので暇つぶしというか。 昼間は天気が悪いの
-
Eye-fi mobi 付きで1890円の “カワイイ”をシェアする写真術
本屋さんに行ったら山積みでした。前から欲しかった Eye-fi が書籍付きで1,890円と激安らしい
ご質問は掲示板へお願いいたします。