*

[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】AXI Select は一番実入りのいい副業かも

AXI Select とは AXI という海外FX業者がみずから行っているプロップトレーダー養成プロ

記事を読む

【FX】Axiory と ThreeTrader

Axiory と ThreeTrader というのは優良な FX 海外業者です。 私は他に E

記事を読む

【FX】CrownPrince という EA

CrownPrince という EA があります。 これも 4年前に入手したもので、パフォーマンス

記事を読む

[FX] FX マイニング第2週前半

以前の記事「 FX マイニング開始 」の続きです。 FXマイニングとは私の造語で、自動売買プロ

記事を読む

2023年11月どうなる日本株

キシダが盛大にヘタこいているようですが、その影響は日本経済にはあまり及ばないと思っています。

記事を読む

iFreeレバレッジ NASDAQ100 購入開始しました

iFreeレバレッジ NASDAQ100 は昨日から買付を始めた投資信託で、日本の大和投資信

記事を読む

metatrader4 は linux で動きます

うちの Linux(Zorin6.4)マシンで、Windows 用の MetaTrader4

記事を読む

仮想通貨はブロックチェーンを使っているから価値がある?

「仮想通貨はブロックチェーンを使っているから価値がある」とか言う人を TV でも見ます。 おかしい

記事を読む

【FX】2024年6月第1週総括

2024年6月の第1週の FXトレード(Fintokei 以外)が終わり、総括します。 まあ、

記事を読む

【FX】MT4 build1420 の不具合

我々が普通に使っている FX のチャートソフト兼トレードシステムである MetaTrader4(MT

記事を読む

Comment

  1. onem より:

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

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

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

  2. onem より:

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

    • kotaro.yasuiwa@gmail.com より:

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

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

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

Message

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

マルタイラーメンご当地セット

いつもご愛顧のマルタイラーメンのご当地シリーズ。 ちょっとお

グランドエクシブ鳥羽

先週の土日に鳥羽にあるグランドエクシブ鳥羽に家族全員で泊まりに行ってき

王位継承戦争

前日の書「血脈の世界史」でヨーロッパによくありがちなのが、継承戦争。

血脈の世界史 / 児嶋由枝(2)

★★★☆☆ 以前も紹介した本ですが、また読み返してみました。

私の高配当株投資法の変遷について

最近、超高配当の投資信託を利用しだしてから、想定内のことと想定外のこと

→もっと見る

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