*

[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);
  }

###

関連記事

ハトポッポ

”三菱東京UFJ銀行”をかたったメール詐欺

以下のようなフィッシング詐欺のメールが最近よく来ます。 ひっかからないようにご注意ください。

記事を読む

FX 2014 12/8-12/9 トレード

2014.12.08 09:56:28 sell 0.1 audjpy

記事を読む

[FX] Schaff Trend Cycle について(2)

以前の記事「Schaff Trend Cycle について 」の続きです。 Schaff Tr

記事を読む

【FX】Black Diamond V4 という EA

Black Diamond V4 という EA については以前も触れました。 最新の Blac

記事を読む

BLV という債券ETF のチャート

現在、私が長期の米国債券の ETF として着目しているものに、 国債や公債:TLT、EDV

記事を読む

MACDバーシステムの改良(2)

前回紹介した MACDバー の自動売買プログラムですが、ロスカットありバージョンをもとに長期用の

記事を読む

超シンプルな自動売買プログラム(8) 3点チャージ変法

3点チャージ法という明地文男さんの開発した株式投資法があります。 昔ちょっと利用したことがあり

記事を読む

一生かかっても知り得ない 年収1億円思考 / 江上 治

一生かかっても知り得ない 年収1億円思考 江上 治 経済界 2011-01-2

記事を読む

KOSPI ベアETN が熱い (2)

「KOSPI ベアETN が熱い 」の続きです。 KOSPI ベアETN とは韓国の株

記事を読む

アメリカ高配当株投資で初の配当金

アメリカ株投資を先月始めたところです。 個別株は危険なので、ファンド(投資信託)と ETF(上

記事を読む

Comment

  1. onem より:

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

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

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

  2. onem より:

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

    • kotaro.yasuiwa@gmail.com より:

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

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

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

kotaro.yasuiwa@gmail.com へ返信する コメントをキャンセル

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

ミニPC AMD Ryzen 5 3550H 16GB DDR4 512GB NVME SSD

またまた購入したミニPC です。 CPU:AMD R

【FX】Hippo Trader という EA(10)

久々の Hippo についての話です。 ナンピンマーチン系は嫌い

【FX】Bitcoin の値動き(2)

前回の記事「【FX】Bitcoin の値動き」の続きです。 Bi

【FX】なつかしの Vulkan Profit インジケーター

Vulkan Profit というインジケーターは有名なので大昔から知

液晶モニター 23.8型 HP ディスプレイ V24i G5 壊れた

http://yiwasaki.com/wp/post-41001-4

→もっと見る

  • 2025年9月
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  
  • アクセスカウンター
PAGE TOP ↑