[FX]yasciiHA04a 暴落対策変更
公開日:
:
最終更新日:2020/03/08
マネー
先週から実戦投入していた yasciiHA04a.ex4 ですが、今朝見ると 4233円の負けを発見。
後から追加投入したAUDUSD での負けです。
チャートを見ると、サーバー時間で 16時に買った途端(上のチャートの黄色の⇒の先の赤の矢印がエントリ)にレートが逆走し損になったようです。
エントリした途端に逆走すること自体は避けようがないのですが、問題は 20:48までストップがかからなかったこと。
うーん、これは想定外。
最悪でも 1時間後の 17時には損切りするはずなんですが。
ということで、暴落対策を強化した yasciiHA04b.ex4 に入れ替えました。
関連記事
*
プログラムソース 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); }
###
関連記事
-
ミニPC(NipoGi AK1plus-n97)にて 10ケの MT4 を動作させる
Intel N97 CPU を積んだミニ PCの NipoGi AK1plus-n97 ですが、現在
-
お金持ちになれる黄金の羽根の拾い方2015 知的人生設計のすすめ / 橘 玲
お金持ちになれる黄金の羽根の拾い方2015 知的人生設計のすすめ橘 玲 幻冬舎
-
【FX】ほぼストキャス単独での EA(2)
以前の記事「【FX】ほぼストキャス単独での EA」の続きです。 ストキャスティクスのパラメータ
-
GDP は国富増加の指標にならない
GDP はあてにならない GDP は国富を測るいい指標になるとは限りません。 私の考えた次の
-
[FX]現在実稼働中の自動売買システム ysVR01.ex4
11月中に稼働していたシステムのうち、ブレイクアウト系の1つ ysVR01.ex4 の紹介です。
-
[FX] EA の使い方&デモ口座成績 2015/4/1-8
デモ口座近況 EA 日 売買時刻 取引 lots 通貨 売買値 決済
-
【FX】2024年7月第1,2週総括
2024年7月の第2週の FXトレード(Fintokei 以外)が終わりました。自分の備忘録
-
最大の銀行、最善ならず
* 最も大きな銀行と言うか、預金者数の多い銀行の困った点は、もし取り付け騒ぎなど急に預金を下ろ
-
三越伊勢丹HD株買いました
三越と伊勢丹などで使える割引カードがもらえるので 100株買いました。 チャートを見る
Comment
初めまして
上記EAを参照して稼働させて見たところ、一旦大きく利が乗った後EXITされずにそのまま保持し続け反発で損切りEXITされる点が何回かございました。
EAが市場の急激な動きに判定を下す前に逆行していく感じでした。
このEAに例えばXpip利益が乗った後は、Ypointにてトレーリングストップが自動で発動するようにする機能を組み込む等は可能でしょうか?(目的としては急騰後の急落対策になります。)
ご紹介、情報提供ありがとうございました。
>上記EAを参照して稼働させて見たところ、一旦大きく利が乗った後EXITされずにそのまま保持し続け反発で損切りEXITされる点が何回かございました。EAが市場の急激な動きに判定を下す前に逆行していく感じでした。
このEAに例えばXpip利益が乗った後は、Ypointにてトレーリングストップが自動で発動するようにする機能を組み込む等は可能でしょうか?(目的としては急騰後の急落対策になります。)
この EA の暴落対策は固定ロスカットとHLバンドによるトレーリングストップですが、後者は買いの場合は Fast_period 期間内の最も低い終値にストップを上昇させていくものです。
このためストップがエントリポイントを越えていない時点でレートが逆走しますと、エントリポイントより安値で損切りになることがあります。
じつはほかのEA(VQ使用)を使って昨日少し別の改良をしたものをアップしています。
> http://yiwasaki.com/wp/post-19524-19524.html
これはエントリ後ある程度思惑通りに進んで、エントリポイントを十分超えたなと思ったら、ロスカットを初期ロスカットからエントリポイント(+スプレッド上乗せ)のところに置き直すものです。要はロスカットを利益確定にしてしまうものです。
勝率は多少上がりますが、副作用もあります。エントリポイントを割ったが復活して大勝ちする”リベンジ”ケースが削られます。
ご所望のものは固定幅のオートトレーリングでしょうか? MT4 に付いているような。
以前考えたのですが、HLバンドによるトレーリングストップのように”押し目を選んで移動する”ほうがいいと思ってつけておりません。
ちょっと作ってみて、結果がいいようでしたらアップします。
ちなみに私は MT4 のトレーリングストップも併用していますが、ここのみ手動で設定するのは確かに面倒かもしれません。
EA に組み込むのがいいのですが、暴落対策はティック毎に計算が発生しますので、複雑なものを組み込みすぎますと、多数の EA を稼働する場合はPCの負荷が高くなることも考える必要があります。
ご返信ありがとうございます。
お示しいただきましたVQ_EAに組み込まれている機能はいいですね。
確かに一回反転してその後リベンジケースをどうするかという内容ですね・・・・。
以下、少し自分なりに提案内容を考え整理してみました。
目的は急騰後の暴落反転対策に変わりません。
・15分足等短い足を監視し利が乗る方向にXpips動いた際、次の足でYパーセント切り返すと利確(反転の目安になる50%や61.8%が妥当でしょうか?)
↑デメリット・PC負荷が高くなる?・更なる利益取得機会の損失。(これは仕切りなおし再エントリーという考えもありますかね?)
・最大含み益の50%まで下落したら一旦利益確定
↑デメリット・同じように更なる利益取得機会の損失
・Xpips含み益が出て、エントリーからの最大出来高を記憶させ、その90%以上出来高で急騰後、
出来高が50%以下で一旦利益確定
急騰定義・過去(15分足等)の平均振幅のA倍上昇
↑デメリット・PC負荷が高くなる?
思いつく点を羅列しただけでお見苦しい点ご容赦ください。
書いてみて思いましたがVQ_EAに組み込まれた内容が一番いいのかも知れません・・・・(私の提案内容は複雑すぎる)
>15分足等短い足を監視し
異なる時間足では EA のマジックナンバーが変わってしまいますから iClose(0,minute,1)で参照取得することになりますね。
>Yパーセント切り返すと利確(反転の目安になる50%や61.8%が妥当でしょうか?)
そこまで待つより「23.6% でいったん降りてまたしきり直し」でもいいような気がしますが、ケースバイケースでしょうね。100%の解答はないと思います。
>Xpips含み益が出て、エントリーからの最大出来高を記憶させ、その90%以上出来高で急騰後、出来高が50%以下で一旦利益確定
出来高(ティック数)はティック毎に見るのでしょうか。やったことはないですが、ティック毎のデータは期間で平滑化されていないので変動が大きくダマされることが多いような気がします。
>急騰定義・過去(15分足等)の平均振幅のA倍上昇
お教えいただいた急騰定義は似たものをブレイクアウトシステムに組み込んだことがあります(ATR の multi倍を超えたらエントリ)。
急騰後急落というと指標発表時のものが代表的ですが、変化が激しいためにスリップがひどくてEAではついていけませんね。指標発表時はフィボナッチも無視されることが多いので、私は参加しないことにしています。
この平均足システムの大きな狙いはバンドウォークに見られるような少し長めのトレンドを捕まえることです。ですので最初から小さな負けは許容しています。あまり余裕のない足切りや利益確定はこいつの長所をそぐことになりかねません。
ご指摘の急落対策はまた別の問題として真剣に考えてみたいです(そのときはブレイクアウトシステムに組み込むでしょうが)。
>この平均足システムの大きな狙いはバンドウォークに見られるような少し長めのトレンドを捕まえることです。ですので最初から小さな負けは許容しています。あまり余裕のない足切りや利益確定はこいつの長所をそぐことになりかねません。
なるほど、確かにそのとおりですね。
納得いたしました。
稚拙な当方の意見に対しご返信、ありがとうございました。
新しいEA楽しみにしております。
平均足システムにエントリポイントにストップを移動する機能を組み込んだものを発表しました。
> http://yiwasaki.com/wp/post-19539-19539.html
やはり、平均足との相性はよくないようですね。
急落対策は MT4付属の固定幅トレーリングストップを使うのもいいのですが、これはサーバーに指し値注文を発注するタイプなので、取り消すのが面倒くさいですね。固定幅なので融通は利きませんし。
EA に固定幅トレーリングストップをつければ成り行き注文になる(サーバーに指し値注文は発行しない)のですが、やはり取り消すには設定を変更する操作が必要なので急ぎの時に間に合わないケースもあります。ただ、いろんな設定(ATR の半分とか、フィボナッチに合わせるとか)ができそうです。
短い時間足のシステムにはぜひつけたい機能です。