某インジのシグナルを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; i
start()関数を以下のように修正してみました。
if (c>0)
{
if (GetProfit()>(CUTOUT*POINT)) MaTrailingStopLoss();
}
else
{
if (OrderSignal()=="BUY")
これをVisualで眺めて続けていきたいと思います。
Sponsored Link
関連記事
-
-
【開封】SMALLRIG 汎用モニターホルダーマウント-1842
すっかり寒くなってしまってブログ更新も冬眠モードに移行しつつあります。 相変わらずの体調不良で
-
-
ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(9)空室管理画面を考える
前回までで基本的なプラグインの制作方法を簡単に学びました。今回からは空室管理の画面を作ってみます。柔
-
-
キヤノン LP-E6 互換バッテリー をCL5585H用に購入
Panasonic GH4 の登場で、購入計画を妄想している時に不意打ちを食らわしてくれた Blac
-
-
DIGITAL KING デジタルキング スーパースリムプロテクターが届いた
激安シリーズと化しているレンズフィルター関連です。レンズは高いものなので、やっぱりプロテクトフィルタ
-
-
散歩しながら買ったノートパソコン「SONY SVF15328EJW」
近くのパソコン工房に行ってみた。デスクトップはほとんど壊滅状態の在庫なし。注文しても納期は3週間とか





ご質問は掲示板へお願いいたします。