*

[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ブレイクアウトシステムのテスト(2)

昨日のブレイクアウトシステムの検証の続きです。 USDCHF(ドルフラン)日足の成績がいいよう

記事を読む

【FX】EA詐欺について

EA詐欺という言葉を聞いたことがないでしょうか。 EA とは自動売買プログラムのこと。

記事を読む

RVI のクロスを使った逆張り系FX自動売買システム

RVI( relative vigor index )という指標は素直でわかりやすいなぁと前から

記事を読む

確定申告 会計 freee

* 本日、確定申告に行ってきました。 昨年は少し稼ぎすぎたようで、納税額も跳ね上がってしまい

記事を読む

[FX] 2021年6月第3週の成績

先週からいくつか市販の自動売買プログラムを試しています。 上の売買履歴は自作のプログラ

記事を読む

2023-05-31 ポートフォリオ改変

最近少し時間的に余裕ができたので、私が趣味でやっている投資分のポートフォリオの整理をしようかと思いま

記事を読む

私の投資信託の買い方

私の投資信託の買い方ですが、毎月5万円ほど定額積立をしている以外の、スポット買いの方法をお示しします

記事を読む

臆病者のための億万長者入門 / 橘 玲

臆病者のための億万長者入門 (文春新書) 橘 玲 文藝春秋 2014-05-

記事を読む

カジノに行きますか?

ラスベガスなどのカジノには行ったことがありませんが、行こうとは全然思いません。 豪華な設備を見

記事を読む

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

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

ミニPC(NipoGi AK1plus-n97)にて 10ケの MT4 を動作させる

Intel N97 CPU を積んだミニ PCの NipoGi AK1

古寺歩きのツボ / 伊沢元彦

★★★☆☆ 古寺にスポットを当てて仏教を解説してくれています

【FX】Rollover Miracle Greedy という EA

Rollover Miracle Greedy という EA がありま

【FX】2024年4月第4週スタート

FX トレードは 自動売買プログラムを入れ替えて、今月(2024年4月

【万年筆】ダイソー万年筆 6853

一昨日、大津京のダイソーで初めて見つけました。 これは見

→もっと見る

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