[FX] zero trailing を平均足システムに / yasciiHA04d.ex4
公開日:
:
最終更新日:2021/06/03
マネー
昨日発表した平均足システム yasciiHA04c.ex4 に以前発表した「zero trailing」を組み込んで見ました。
- yasciiHA04c.ex4 > [FX] 来週は yasciiHA04c.ex4 を投入
- zero trailing > [FX] 勝率を上げる zero trailing
zero trailing は私の造語ですが、エントリ後ある程度思惑通りに進んで、エントリポイントを十分超えたなと思ったら、ストップロスを初期ロスカットからエントリポイント(+スプレッド上乗せ)のところに置き直すことをさしています。
こうするとこの後は損切りしたときの損害がゼロになるので、損切りという概念はなくなり利益確定のみとなり、要するに”負け”はなくなります。
とりあえずエントリポイントを初期ロスカットと同じ幅だけ超えたら、ストップロスをエントリポイント(スプレッド分上乗せ)に移動するように改良してみました。それが yasciiHA04d.ex4 です。
結果 15/3/15 – 15/4/11 1時間足
通貨ペア | HA04c | HA04d |
EURUSD | 503 | 157 |
AUDUSD | 491 | 463 |
USDCHF | 846 | 587 |
GRPUSD | 854 | 451 |
GRPJPY | 310 | 272 |
改良前後のシステムの総損益(ドル)だけを比べてみました。
勝率はアップするものの早すぎる利益確定になって、後のおいしい部分をとりきれずに終わってしまうようです。
早く終わっちゃってダメねえ・・・”早漏ぎみ”だということでしょう。^^
平均足システムとのコンセプトのズレ
そもそも平均足システムは比較的長いトレンド(1時間足で 10-30本程度続くような)をターゲットに開発されています。
ADXcross や VQ ほど小回りがききませんので。
ですから 1時間より短い足ではうまく働かないことが多いのです。
1時間以内の細かな上下動のダマシを防ぐため平滑化した”平均足”なので、ある程度の逆行は許容してやらないといけません。
そもそも 1時間足というのは過去1時間のデータをたった4つの値(始値、終値、高値、安値)にしたものなので、細かな変動のデータなどは全部捨てています。さらに移動平均線などの指標ではこのうち終値しか見ないことが多いわけです。
どんなシステムを使ってエントリしても、エントリポイントではすでに逆行が始まっているバッドなタイミングのときも結構あります・・・たとえば、買いエントリしたときに”買い”とは真逆の方にグングン進行中だったりします。
要するに、ロスカットにはかなりの余裕が必要だということです。
そして時間足が長くなればなるほど余裕は大きめに持たせないといけません。
*
ある程度思惑通りにいくと、HLバンドトレーリングにより押し目にストップが切り上がって(売りの場合は切り下がって)いくので、zero trailing は HLバンドトレーリングが働くまでの逆行によってマイナス(せいぜい初期ロスカット分)になることを防ぐだけしか効果がありません。
それを防ぐのと、得られる利益が結構減るのと どちらを許容するかですね。
ADX や VQ のシステムも小回りがきくといってもせいぜい 15分足が限界ですから、これらに組み込んでも多少まし といったくらいで、同じ傾向であることは想像がつきますね。
ということで、あまりお勧めではありませんが、いちおうソースを載せます。
プログラムソース yasciiHA04d.mq4
// // yasciiHA04d.mq4 // Heiken_Ashi_Real(移動平均線クロス)を使用 // 通常平均足との組み合わせ // with Time Filter // 暴落対策変更 zero trailing //マジックナンバーの定義 #define MAGIC 42222 //パラメーターの設定// extern double Lots = 0.1; //取引ロット数 extern int Slip = 10; //許容スリッページ数 extern string Comments = "HA04d"; //コメント extern int HL_period = 12 ; extern double ILC = 35.0 ; extern int in_time = 10; // 取引開始時間 extern int out_time = 17; // 取引停止時間 int Tenkan_sen=9; int Kijun_sen=26; double Senkou_span_b=52; //変数の設定// int Ticket_L = 0; //買い注文の結果をキャッチする変数 int Ticket_S = 0; //売り注文の結果をキャッチする変数 int Exit_L = 0; //買いポジションの決済注文の結果をキャッチする変数 int Exit_S = 0; //売りポジションの決済注文の結果をキャッチする変数 int OS1 ; int OS2 ; double OOPL; double OOPS; double TS1 = 0.0 ; double TS2 = 1000.0 ; int start(){ double lc = ILC; if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ; //暴落対策(始め) double HH1 = High[iLowest(NULL, 0, MODE_HIGH, HL_period, 1)]; double LL1 = Low[iHighest(NULL, 0, MODE_LOW, HL_period, 1)]; //買いポジションのエグジット OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET); OOPL = OrderOpenPrice(); if(Bid > OOPL + lc*Point ) TS1 = OOPL + Ask - Bid ; if( (Bid < LL1 || ( OOPL - lc*Point >= Bid ) || Bid <= TS1) && ( Ticket_L != 0 && Ticket_L != -1 )) { Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red); if( Exit_L ==1 ) {Ticket_L = 0;} } //売りポジションのエグジット OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); OOPS = OrderOpenPrice(); if( Ask < OOPS - lc*Point ) TS2 = OOPS - Ask + Bid ; if( (Ask > HH1 || ( OOPS + lc*Point <= Ask ) || Ask >= TS2) && ( Ticket_S != 0 && Ticket_S != -1 )) { Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue); if( Exit_S ==1 ) {Ticket_S = 0;} } //暴落対策(終わり) if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ; double HA_open1 = ( Open[2] + Close[2] ) / 2.0 ; double HA_close1 = ( Open[1] + Close[1] + High[1] + Low[1] ) / 4.0 ; double HA_open2 = ( Open[3] + Close[3] ) / 2.0 ; double HA_close2 = ( Open[2] + Close[2] + High[2] + Low[2] ) / 4.0 ; double HA_openMA1 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",2,1); double HA_openMA2 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",2,2); double HA_closeMA1 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",3,1); double HA_closeMA2 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",3,2); double cla1 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 3, Kijun_sen); double clb1 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 4, Kijun_sen); //買いポジションのエグジット OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET); OOPL = OrderOpenPrice(); if( ((HA_openMA1 > HA_closeMA1 && HA_openMA2 > HA_closeMA2) || ( HA_open1 > HA_close1 && HA_open2 > HA_close2) ||( OOPL - lc*Point >= Close[1] ) ) && ( Ticket_L != 0 && Ticket_L != -1 )) { Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red); if( Exit_L ==1 ) {Ticket_L = 0;} } //売りポジションのエグジット OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); OOPS = OrderOpenPrice(); if( ((HA_openMA1 < HA_closeMA1 && HA_openMA2 < HA_closeMA2) || ( HA_open1 < HA_close1 && HA_open2 < HA_close2) || ( OOPS + lc*Point <= Close[1] ) ) && ( Ticket_S != 0 && Ticket_S != -1 )) { Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Aqua); if( Exit_S ==1 ) {Ticket_S = 0;} } //買いエントリー if( HA_openMA1 < HA_closeMA1 && HA_open1 < HA_close1 && (Hour() >= in_time && Hour() <= out_time) && ( (Close[1] > cla1 && Close[1] > clb1) || (Close[1] < cla1 && Close[1] < clb1) ) && ( Ticket_L == 0 || Ticket_L == -1 ) && ( Ticket_S == 0 || Ticket_S == -1 )) { Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,Comments,MAGIC,0,Red); } //売りエントリー if( HA_openMA1 > HA_closeMA1 && HA_open1 > HA_close1 && (Hour() >= in_time && Hour() <= out_time) && ( (Close[1] > cla1 && Close[1] > clb1) || (Close[1] < cla1 && Close[1] < clb1) ) && ( Ticket_S == 0 || Ticket_S == -1 ) && ( Ticket_L == 0 || Ticket_L == -1 )) { Ticket_S = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,Comments,MAGIC,0,Aqua); } return(0); }
###
関連記事
-
田平雅哉のFX「スイングトレード」テクニック / 田平 雅哉
田平雅哉のFX「スイングトレード」テクニック (WINNER’S METHOD
-
損するはずのない投資
下はみなさん大好き NISA 対象の円建て投資信託 eMAXIS Slim 米国株式(S&P
-
【FX】2024年7月第1,2週総括
2024年7月の第2週の FXトレード(Fintokei 以外)が終わりました。自分の備忘録
-
株式投資「システムトレード」の極意―3年5ヶ月で5億円の資産を築いた! / 保田 望
株式投資「システムトレード」の極意―3年5ヶ月で5億円の資産を築いた! 保田
-
【FX】 2024年4月第1週総括
4月第1週の総括 今週の FXトレード時間が終わりましたので、4月第1週を総括したいと思います。
-
ドクター田平の「最強」外貨投資―5年後に資産家になる / 田平 雅哉
ドクター田平の「最強」外貨投資―5年後に資産家になる 田平 雅哉 主婦と生活
-
FX のチャートを読むのは画像診断のようなもの
FX で頼りになるのはチャートだけ。 過去の値動きを投資家の心理とともに記録しています。 画
-
FX トレード 2014/11/19 日中
本日もリアルトレード。 今日は自宅。仕事はヒマなのでチャートを眺めながら仕事中。 昨日持ち越
-
Bollinger BandWidth について
ボリンジャーバンド Bollinger Band という、投資家にとってはなくてはならないものが
-
【FX】2023年11月第2週中間決算
「2023年11月第1週中間決算」の続きです。 1週間前は 184347円だったので 23
Comment
こんばんわ
わざわざお手数を取らせてしまい申し訳ありません。
早速試してみましたが、なるほど改めて納得いたしました。
書かれておられるようにもともとは大きな流れをとるための物ですから勝ち数で稼ぐ系ではない以上、こういった損失を抑えるというのは勝ちを抑制するデメリットが大きすぎますね・・・
ありがとうございました。
前記事のバージョンCを試させて頂きますとともに御礼申し上げます。
それと少しバージョンCにて触っていたのですが、AUDHKDが存外いいかもしれません。
FP12
ILC14
intime7
Outtime17
でテストして見ましたがいい成績を出してるように見受けられます。
エキゾチック通貨故の固有不安はありますが、最適化が出来れば結構良くなるかもしれません。
お手すきの時にでもご検証いただければ幸いです。
エキゾチック通貨はほとんど見ていなかったのですが、オーストラリア香港ドルですか。
検証していませんが、パラメーターも適正値(日本時間で 13-23時でOK、ILCも十分低め)のように思います。
よほどの政情変化がない限り直近 1-2ヶ月で最適化した複数の EA を複数の通貨ペアで動作させてポートフォリオを組むのが一番いいと思っています。
来週から稼働の分に加えてみます。ありがとうございました。