*

[FX]yasciiHA04a 暴落対策変更

公開日: : 最終更新日:2020/03/08 マネー

先週から実戦投入していた yasciiHA04a.ex4 ですが、今朝見ると 4233円の負けを発見。

後から追加投入したAUDUSD での負けです。

チャートを見ると、サーバー時間で 16時に買った途端(上のチャートの黄色の⇒の先の赤の矢印がエントリ)にレートが逆走し損になったようです。

エントリした途端に逆走すること自体は避けようがないのですが、問題は 20:48までストップがかからなかったこと。

うーん、これは想定外。

最悪でも 1時間後の 17時には損切りするはずなんですが。

ということで、暴落対策を強化した yasciiHA04b.ex4 に入れ替えました。

 

関連記事

[FX]yasciiHA04a パラメーター変更

プログラムソース yasciiHA04b.mq4

//
// yasciiHA04b.mq4
//           Heiken_Ashi_Real(移動平均線クロス)を使用
//         通常平均足との組み合わせ 
//           with Time Filter
// 暴落対策変更

//マジックナンバーの定義
#define MAGIC  42219        

//パラメーターの設定//
extern double Lots = 1.0;     //取引ロット数
extern int Slip = 10;         //許容スリッページ数
extern string Comments =  "HA04b"; //コメント

extern int Fast_period = 12 ;
extern double ILC = 35.0 ;

extern int in_time = 10; // 取引開始時間
extern int out_time = 19; // 取引停止時間

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;

int start(){

   double lc = ILC;
   if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;

    //暴落対策(始め)

   double FastHH1 = Close[iHighest(NULL, 0, MODE_CLOSE, Fast_period, 1)];
   double FastLL1 = Close[iLowest(NULL, 0, MODE_CLOSE, Fast_period, 1)];

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET); 
   OOPL = OrderOpenPrice();
   if( (Bid < FastLL1 || ( OOPL - lc*Point >= Bid ))
       && ( 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 > FastHH1 || ( OOPS + lc*Point <= Ask ))
       && ( 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_openMA2 < HA_closeMA2 && 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_openMA2 > HA_closeMA2 && 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 / 田畑昇人」にも書いてありましたが、東京株式市場の開

記事を読む

【FX】勝率99%が出ると話題になったRSI + MACD + ストキャスティクス必勝トレード法

Youtube で「勝率99%が出ると話題になったRSI + MACD + ストキャスティクス必勝ト

記事を読む

【FX】EA の運用(2)

またまたFX自動売買プログラム(EA)の運用のお話です。 前回は、「負けたときに負けの金額より

記事を読む

農業としてのFX

以前の記事「FX はギャンブル」で、FX にはギャンブル要素があるという話をしましたが、FX には農

記事を読む

貯蓄型の生命保険

主に使っている銀行口座(普通預金口座)の残高が 8ケタになっていたので、相続目的で生命保険に入ること

記事を読む

【FX】ORION SCALPER という EA

ORION SCALPER という EA を見つけました。 オリオンというと、日本人が過去に作

記事を読む

【FX】VPS 要らないかも

以前にも書いたのですが、自動売買ソフトの MT4 を1台の PC に複数インストールしております。

記事を読む

【FX】新戦略のためのデモトレード(2)

「【FX】新戦略のためのデモトレード」の続きです。 Dark Venus と Connect

記事を読む

2019/9/16 早朝窓開け 早起きは何文の得?

本日は日本は祝日ですが、6時に起きたので相場チェックすると、珍しくクロス円で「窓開け」が起き

記事を読む

一戸建てがいいかマンションがいいか (2)

* 私は防犯面や防災面を考えますと、マンションがはるかに優れていると思っています。 竜巻、台

記事を読む

Comment

  1. onem より:

    初めまして
    上記EAを参照して稼働させて見たところ、一旦大きく利が乗った後EXITされずにそのまま保持し続け反発で損切りEXITされる点が何回かございました。
    EAが市場の急激な動きに判定を下す前に逆行していく感じでした。
    このEAに例えばXpip利益が乗った後は、Ypointにてトレーリングストップが自動で発動するようにする機能を組み込む等は可能でしょうか?(目的としては急騰後の急落対策になります。)

    • kotaro.yasuiwa@gmail.com より:

      ご紹介、情報提供ありがとうございました。

      >上記EAを参照して稼働させて見たところ、一旦大きく利が乗った後EXITされずにそのまま保持し続け反発で損切りEXITされる点が何回かございました。EAが市場の急激な動きに判定を下す前に逆行していく感じでした。
      このEAに例えばXpip利益が乗った後は、Ypointにてトレーリングストップが自動で発動するようにする機能を組み込む等は可能でしょうか?(目的としては急騰後の急落対策になります。)

      この EA の暴落対策は固定ロスカットとHLバンドによるトレーリングストップですが、後者は買いの場合は Fast_period 期間内の最も低い終値にストップを上昇させていくものです。
      このためストップがエントリポイントを越えていない時点でレートが逆走しますと、エントリポイントより安値で損切りになることがあります。
      じつはほかのEA(VQ使用)を使って昨日少し別の改良をしたものをアップしています。
      > http://yiwasaki.com/wp/post-19524-19524.html
      これはエントリ後ある程度思惑通りに進んで、エントリポイントを十分超えたなと思ったら、ロスカットを初期ロスカットからエントリポイント(+スプレッド上乗せ)のところに置き直すものです。要はロスカットを利益確定にしてしまうものです。
      勝率は多少上がりますが、副作用もあります。エントリポイントを割ったが復活して大勝ちする”リベンジ”ケースが削られます。

      ご所望のものは固定幅のオートトレーリングでしょうか? MT4 に付いているような。
      以前考えたのですが、HLバンドによるトレーリングストップのように”押し目を選んで移動する”ほうがいいと思ってつけておりません。
      ちょっと作ってみて、結果がいいようでしたらアップします。

  2. kotaro.yasuiwa@gmail.com より:

    ちなみに私は MT4 のトレーリングストップも併用していますが、ここのみ手動で設定するのは確かに面倒かもしれません。

    EA に組み込むのがいいのですが、暴落対策はティック毎に計算が発生しますので、複雑なものを組み込みすぎますと、多数の EA を稼働する場合はPCの負荷が高くなることも考える必要があります。

    • onem より:

      ご返信ありがとうございます。
      お示しいただきましたVQ_EAに組み込まれている機能はいいですね。

      確かに一回反転してその後リベンジケースをどうするかという内容ですね・・・・。

      以下、少し自分なりに提案内容を考え整理してみました。
      目的は急騰後の暴落反転対策に変わりません。

      ・15分足等短い足を監視し利が乗る方向にXpips動いた際、次の足でYパーセント切り返すと利確(反転の目安になる50%や61.8%が妥当でしょうか?)
      ↑デメリット・PC負荷が高くなる?・更なる利益取得機会の損失。(これは仕切りなおし再エントリーという考えもありますかね?)

      ・最大含み益の50%まで下落したら一旦利益確定
      ↑デメリット・同じように更なる利益取得機会の損失

      ・Xpips含み益が出て、エントリーからの最大出来高を記憶させ、その90%以上出来高で急騰後、
       出来高が50%以下で一旦利益確定
      急騰定義・過去(15分足等)の平均振幅のA倍上昇
      ↑デメリット・PC負荷が高くなる?

      思いつく点を羅列しただけでお見苦しい点ご容赦ください。
      書いてみて思いましたがVQ_EAに組み込まれた内容が一番いいのかも知れません・・・・(私の提案内容は複雑すぎる)

      • kotaro.yasuiwa@gmail.com より:

        >15分足等短い足を監視し
        異なる時間足では EA のマジックナンバーが変わってしまいますから iClose(0,minute,1)で参照取得することになりますね。

        >Yパーセント切り返すと利確(反転の目安になる50%や61.8%が妥当でしょうか?)
        そこまで待つより「23.6% でいったん降りてまたしきり直し」でもいいような気がしますが、ケースバイケースでしょうね。100%の解答はないと思います。

        >Xpips含み益が出て、エントリーからの最大出来高を記憶させ、その90%以上出来高で急騰後、出来高が50%以下で一旦利益確定

        出来高(ティック数)はティック毎に見るのでしょうか。やったことはないですが、ティック毎のデータは期間で平滑化されていないので変動が大きくダマされることが多いような気がします。

        >急騰定義・過去(15分足等)の平均振幅のA倍上昇
        お教えいただいた急騰定義は似たものをブレイクアウトシステムに組み込んだことがあります(ATR の multi倍を超えたらエントリ)。

        急騰後急落というと指標発表時のものが代表的ですが、変化が激しいためにスリップがひどくてEAではついていけませんね。指標発表時はフィボナッチも無視されることが多いので、私は参加しないことにしています。

        この平均足システムの大きな狙いはバンドウォークに見られるような少し長めのトレンドを捕まえることです。ですので最初から小さな負けは許容しています。あまり余裕のない足切りや利益確定はこいつの長所をそぐことになりかねません。

        ご指摘の急落対策はまた別の問題として真剣に考えてみたいです(そのときはブレイクアウトシステムに組み込むでしょうが)。

        • onem より:

          >この平均足システムの大きな狙いはバンドウォークに見られるような少し長めのトレンドを捕まえることです。ですので最初から小さな負けは許容しています。あまり余裕のない足切りや利益確定はこいつの長所をそぐことになりかねません。

          なるほど、確かにそのとおりですね。
          納得いたしました。
          稚拙な当方の意見に対しご返信、ありがとうございました。
          新しいEA楽しみにしております。

          • kotaro.yasuiwa@gmail.com より:

            平均足システムにエントリポイントにストップを移動する機能を組み込んだものを発表しました。
            > http://yiwasaki.com/wp/post-19539-19539.html
            やはり、平均足との相性はよくないようですね。

            急落対策は MT4付属の固定幅トレーリングストップを使うのもいいのですが、これはサーバーに指し値注文を発注するタイプなので、取り消すのが面倒くさいですね。固定幅なので融通は利きませんし。

            EA に固定幅トレーリングストップをつければ成り行き注文になる(サーバーに指し値注文は発行しない)のですが、やはり取り消すには設定を変更する操作が必要なので急ぎの時に間に合わないケースもあります。ただ、いろんな設定(ATR の半分とか、フィボナッチに合わせるとか)ができそうです。
            短い時間足のシステムにはぜひつけたい機能です。

Message

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

【FX】AXI いい感じ

海外FX業者である AXI のプレミアム口座を開いたのが先月の 29日

【FX】Fintokei 豹変す

プロップファームの Fintokei ですが、私はパール(500万円コ

【FX】TitanFX で新口座

TitanFX ではリアル口座を3つ作って運用していますが、これらは

【FX】AXI 開始

Axi(アクシ)という海外FX業者に口座を開きました。 キャッシュバ

BMW G20 318i の燃料メーター

BMW G20 318i は現行3シリーズ(G20)の最も安いモデルで

→もっと見る

  • 2025年10月
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
  • アクセスカウンター
PAGE TOP ↑