[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);
}
###
関連記事
-
-
移動平均線とVQインディケーターとの組み合わせで自動売買(2)
USDCHF 1時間足[/caption] ↑ クリックすると拡大します 以前のス
-
-
ジュニアNISAで教育資金?
ジュニアNISA という制度があります。 ようは 国はあなたたちの子供の養育費は出せないから親
-
-
【FX】2024年1月集計
運用中の FX 口座(14口座)の 2024年1月の集計ですが、この月から通常口座とテスト口座に分け
-
-
Trend Intensity Index を使った EA
以前の記事で紹介した Trend Intensity Index(TII) という指標で作った
-
-
本日アメリカの社債を売りました
本日アメリカの社債を全部売りました(先日は米国債を全部売りました)。 今月8日の利払日が過ぎた
-
-
[FX] FX マイニング第6週 暴走?
以前の記事「FX マイニング第5週」から、本業が忙しくてほったらかしにしていたところ、オソロシイこと
-
-
ドクター田平の「最強」外貨投資―5年後に資産家になる / 田平 雅哉
ドクター田平の「最強」外貨投資―5年後に資産家になる 田平 雅哉 主婦と生活
-
-
[FX] Tokyo Box(ロンドン・コーリング)プログラム改良(2)
以前の記事「 Tokyo Box(ロンドン・コーリング)プログラム改良」の続きです。 実稼働はまあ
-
-
[FX] VQ_MTF システムにフィボナッチ・トレーリングストップを導入(2)
マルチタイムフレーム化した VQ システムである yasciiVQ_MTF01 にフィボナッチ・
-
-
2024年8月8日 日本株は日柄調整に?
本日の株式市場が閉まり、日経平均は 34,831.15円(前日比-258.47円)となりました。







Comment
こんばんわ
わざわざお手数を取らせてしまい申し訳ありません。
早速試してみましたが、なるほど改めて納得いたしました。
書かれておられるようにもともとは大きな流れをとるための物ですから勝ち数で稼ぐ系ではない以上、こういった損失を抑えるというのは勝ちを抑制するデメリットが大きすぎますね・・・
ありがとうございました。
前記事のバージョンCを試させて頂きますとともに御礼申し上げます。
それと少しバージョンCにて触っていたのですが、AUDHKDが存外いいかもしれません。
FP12
ILC14
intime7
Outtime17
でテストして見ましたがいい成績を出してるように見受けられます。
エキゾチック通貨故の固有不安はありますが、最適化が出来れば結構良くなるかもしれません。
お手すきの時にでもご検証いただければ幸いです。
エキゾチック通貨はほとんど見ていなかったのですが、オーストラリア香港ドルですか。
検証していませんが、パラメーターも適正値(日本時間で 13-23時でOK、ILCも十分低め)のように思います。
よほどの政情変化がない限り直近 1-2ヶ月で最適化した複数の EA を複数の通貨ペアで動作させてポートフォリオを組むのが一番いいと思っています。
来週から稼働の分に加えてみます。ありがとうございました。