*

[FX] zero trailing を平均足システムに / yasciiHA04d.ex4

公開日: : 最終更新日:2021/06/03 マネー

昨日発表した平均足システム yasciiHA04c.ex4 に以前発表した「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最強チャート GMMAの真実 / 陳 満咲杜

FX最強チャート GMMAの真実陳 満咲杜 扶桑社 2012-06-29売り上げ

記事を読む

【FX】ケルトナー チャネル

ケルトナー チャネル(Keltner channel)という指標があります。 原法では

記事を読む

日本の年金制度 日本人らしくない態度

前回記事⇒ 日本の年金制度 年金記録問題 マイナンバー制度 年金問題 こんな問題も 辛抱痔

記事を読む

FX 裁量トレード 現在の方法 (3)

以前の記事の「FX 裁量トレード 現在の方法(2)」の続きです。 上がかなり完成型に近

記事を読む

年金支給引き上げ?

* また年金の支給開始年齢を遅らせるとか騒いでいますね。 この分じゃ、毎年1年ずつ遅らせる

記事を読む

FX はギャンブル

FX はギャンブルなのか 「FX はギャンブル」と言う人が多いですが、その人達の行動を見ていると(

記事を読む

2019/9/16 ユーロ円下げにお付き合い

今回のもう一つの FX取引は EURUSD。 ユーロドルは月足、週足、日足、1時間足ど

記事を読む

【FX】ボリンジャーバンドを逆張りで

ボリンジャーバンドの開発者のボリンジャー氏があれほど 「ボリンジャーバンドを逆張りで使うな」 と

記事を読む

【FX】Axiory 新ナノ口座(3つめ)発進

以前の記事「Axiory でハロウィーンキャンペーンやっています」で新設して、10万円を入金して 1

記事を読む

脳はお高いものがお好き

* この前、購買心理学の本を読んでいると・・・ 脳は 高価なものだと知っているモノは、無意識

記事を読む

Comment

  1. onem より:

    こんばんわ
    わざわざお手数を取らせてしまい申し訳ありません。
    早速試してみましたが、なるほど改めて納得いたしました。

    書かれておられるようにもともとは大きな流れをとるための物ですから勝ち数で稼ぐ系ではない以上、こういった損失を抑えるというのは勝ちを抑制するデメリットが大きすぎますね・・・

    ありがとうございました。
    前記事のバージョンCを試させて頂きますとともに御礼申し上げます。

  2. onem より:

    それと少しバージョンCにて触っていたのですが、AUDHKDが存外いいかもしれません。
    FP12
    ILC14
    intime7
    Outtime17
    でテストして見ましたがいい成績を出してるように見受けられます。
    エキゾチック通貨故の固有不安はありますが、最適化が出来れば結構良くなるかもしれません。
    お手すきの時にでもご検証いただければ幸いです。

    • kotaro.yasuiwa@gmail.com より:

      エキゾチック通貨はほとんど見ていなかったのですが、オーストラリア香港ドルですか。
      検証していませんが、パラメーターも適正値(日本時間で 13-23時でOK、ILCも十分低め)のように思います。

      よほどの政情変化がない限り直近 1-2ヶ月で最適化した複数の EA を複数の通貨ペアで動作させてポートフォリオを組むのが一番いいと思っています。

      来週から稼働の分に加えてみます。ありがとうございました。

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

【FX】平滑化 RSI を使った簡単な EA

今はなき雑誌「FX攻略.com」の 2020年12月に のぶしサンの高

【FX】3本の RCI を使った自動売買プログラム (3)

「 3本の RCI を使った自動売買プログラム (2)」の続きです。

2024-11-18 愛車が不調に

一昨日ですが、愛車(BMW 318i)に乗ると警告画面が。

新・臆病者のための株入門 / 橘 玲

★★★★☆ 旧版も読んだのですが、新NISA 対応というだけ

モノラルアンプの価値

モノラルアンプというのはステレオアンプと違い、1つの入力を増幅して出力

→もっと見る

  • アクセスカウンター
PAGE TOP ↑