検証と改善その2

ここでは、「検証と改善その2」 に関する記事を紹介しています。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
検証と改善その2

前回の検証で平均利益額と平均損失額の対比が重要と分りました。
利益を伸ばすか、損失を減らすかすれば対比は変わります。
損失を減らす(限定する)事が出来ればいいのですが・・・


その方法は、損切りです。
注文を入れる時に、STOP(逆指値)を入れるだけです。
とりあえず、コードを変えてみます。
変更するところは

Ticket = OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0, 0, "Buy", 0, 0, Blue);
赤字の部分に値を入れるだけです。
例えば、30銭のSTOPを入れたい時に、「30」と入れてもオーダーが通りません。
レート(値段)を入れないといけないのです。
100円の買いオーダーを入れた場合、「90.30」と入れないと通りません。
直接値を入れることでは対応できません。ここは「ASK」から「30」を足したり引いたりして対応します。
買いオーダーの場合「Ask-30*point」。
売りオーダーの場合「Bid+30*point」になります。
pointとは現在の通貨値の最小単位を取得します。
簡単にいえば、今のレートが100.25だった場合、「0.01」となります。
つまり「30*0.01」で「0.30」を足したり引いたりします。


ストップを入れたオーダーのやり方

Ticket = OrderSend(Symbol(), OP_BUY, 1, Ask, 3, Ask-30*point, 0, "Buy", 0, 0, Blue);
Ticket = OrderSend(Symbol(), OP_SELL, 1, Bid, 3, Bid+30*point, 0, "Sell", 0, 0, Red);


これで、損失額が限定されるので、勝率は同じでも対比が損小利大になるはずです。
とりあえずバックテストをやってみましょう。

レポート
同じタイミングでの売買方式なのに、勝率が半分になってしまいました。
何故でしょう。



Visual modeにチェックを入れてバックテストを行うと終了後に売買履歴をチャート上に表示してくれます。
リアルタイムで値動きを表示させる為、時間がかかります。が、「Skip to」を押すと隣に表示されている日付まで値動きの表示を止めて結果を表示します。


では、勝率が半分になってしまった時のチャートの一部を見てみましょう。
チャート
画像の中央辺りのバー「28 Jan 09:15」が原因のようです。
原因究明の前に、一応チャート見方を説明します。
赤と青の移動平均線とバーの上下に出ている矢印は、以前作成したインディケーターの表示です。
バーの左横に出ている赤と青の矢印が注文をした場所です。売り買いを表しています。
バーの右横に出ている黄色の三角印は決済注文を行ったところです。
注文から決済までを赤と青の破線で結んでいます。
また、注文を行った矢印の上下にある赤の横線がストップの場所です。

では、原因を探ってみましょう。
今回の売買ルールは移動平均線のクロスです。更に詳しく言うと
「現在のバーの移動平均線の上下が一本前の移動平均線の上下と逆になった時」に売買サインが出ます。
今回、15分足を使用しているためバー一本は15分です。
つまり、15分以内に以下のような事が起こると無駄な注文が発生してしまいます。
1,売りシグナルが出る
2,ストップを入れた注文を入れる。
3,ストップに掛かり決済されポジションが無くなる
4,次のバーに移動していない為、売りシグナルは出たままになっている。
5,2に戻る

その後、バーを移動しない限り1~5を繰り返します。
これでは、損失を限定するどころか膨らましてしまいます。
グラフ

コードを少し変える必要がありそうですが、長くなりましたのでそれは次回に・・・
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://fxsk.blog105.fc2.com/tb.php/88-15a10a0f
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。