*

FX 大ダメージ 暴落対策用コードの導入

公開日: : 最終更新日:2015/01/21 マネー

 

自動売買のデモ口座が今朝とんでもないことに。

昨日は調子よく、30万円プラス近くまで行ったのですが、今朝プラスマイナスゼロくらいに戻っていたのです。

利益確定をもう少し改善しなくてはと思ってよく見ると、ドルフランの暴落によるものと判明(上のグラフ)。

スイス中銀がスイスフラン相場について1ユーロ=1.20フランの上限を撤廃したとのニュースのためでしょう。

この上限はFXサーファーにはなじみのものですが、ついにスイスの為替介入がなくなる日が来たのですね。

ドルフランの暴落と書きましたが、ドルは無実で、スイスフラン単独の高騰ですね。

しかし、数時間で 15%も高騰したとは・・・ケタ違いです。

しかし、デモ口座でよかった。

あわててプログラムに暴落対策を加えました。

ちゃんと動くかはチェックしていません。バックテストではちょっと効果があるようなんですが。

もう一度暴落が起きないかな。

プログラムソース

//
// yasciiMACD_3cross07.mq4
//                Trailing stop
//

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

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

extern int Fast_EMA_Period1 = 6;
extern int Slow_EMA_Period1 = 19;
extern int Signal_Period1 = 6;
extern int Fast_EMA_Period2 = 12;
extern int Slow_EMA_Period2 = 26;
extern int Signal_Period2 = 9;
extern int Fast_EMA_Period3 = 18 ; // 19;
extern int Slow_EMA_Period3 = 33 ; // 39;
extern int Signal_Period3 = 11; // 9;

extern int ADXcrossesPeriod = 14;
extern int Fast_period = 18 ;
extern double margin = 0.0 ;

extern double ILC = 730.0 ; 

//---- input parameters
extern int       Viscosity=13;
extern int       Sedimentation=50;
extern double    Threshold_level=1.3;
extern bool      lag_supressor=true;

//変数の設定//
int Ticket_L = 0; //買い注文の結果をキャッチする変数
int Ticket_S = 0; //売り注文の結果をキャッチする変数
int Exit_L = 0;   //買いポジションの決済注文の結果をキャッチする変数
int Exit_S = 0;   //売りポジションの決済注文の結果をキャッチする変数
int OS1 ;
int OS2 ;

double   MACD_MAIN1_1 ;
double   MACD_SIGN1_1 ;
double   MACD_Value1_1 ;

double   MACD_MAIN1_2 ;
double   MACD_SIGN1_2 ;
double   MACD_Value1_2 ;

double   MACD_MAIN1_3 ;
double   MACD_SIGN1_3 ;
double   MACD_Value1_3 ;

double   OOPL;
double   OOPS;
double   LwT = 0.0;
double   HgT = 10000.0 ;

//damiani_filter用
double    lag_s_K=0.5;
double   s0 = 0; 
double   s1= 0;
double   s2 = 0;
double   s3 = 0;
double   vol=0;
double t=Threshold_level;

int damiani_f()
{

      double sa=iATR(NULL,0,Viscosity,1);
      double ia = iATR(NULL,0,Sedimentation,1) ;
      if(lag_supressor){
         if (ia == 0) vol = 1.0 ;
         else vol= sa/ia + lag_s_K*(s1-s3);   
      }else{
         if (ia == 0) vol = 1.0 ;
         else vol= sa/ia;   
      }

      double anti_thres=iStdDev(NULL,0,Viscosity,0,MODE_LWMA,PRICE_TYPICAL,1);

      double isd = iStdDev(NULL,0,Sedimentation,0,MODE_LWMA,PRICE_TYPICAL,1) ;
      if (isd == 0) anti_thres = 1.0 ;
      else anti_thres = anti_thres/isd ;

      t=t-anti_thres;

      s3 = s2; s2 = s1; s1= s0; 
      s0 = vol;

      if (vol>t){
      	return(1);
      }else{
      	return(0);
      }

}

int start()
  {

// 暴落対策始まり

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

   //買いポジションのエグジット
   if( Bid < FastLL1-margin 
       && ( 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); 

   //売りポジションのエグジット
   if( Ask> FastHH1+margin
       && ( 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) ;

   MACD_MAIN1_1 = iMACD(NULL, 0, Fast_EMA_Period1 , Slow_EMA_Period1, Signal_Period1, PRICE_CLOSE, MODE_MAIN, 1 );
   MACD_SIGN1_1 = iMACD(NULL, 0, Fast_EMA_Period1 , Slow_EMA_Period1, Signal_Period1, PRICE_CLOSE, MODE_SIGNAL, 1 );
   MACD_Value1_1 = MACD_MAIN1_1 - MACD_SIGN1_1 ;

   MACD_MAIN1_2 = iMACD(NULL, 0, Fast_EMA_Period2 , Slow_EMA_Period2, Signal_Period2, PRICE_CLOSE, MODE_MAIN, 1 );
   MACD_SIGN1_2 = iMACD(NULL, 0, Fast_EMA_Period2 , Slow_EMA_Period2, Signal_Period2, PRICE_CLOSE, MODE_SIGNAL, 1 );
   MACD_Value1_2 = MACD_MAIN1_2 - MACD_SIGN1_2 ;

   MACD_MAIN1_3 = iMACD(NULL, 0, Fast_EMA_Period3 , Slow_EMA_Period3, Signal_Period3, PRICE_CLOSE, MODE_MAIN, 1 );
   MACD_SIGN1_3 = iMACD(NULL, 0, Fast_EMA_Period3 , Slow_EMA_Period3, Signal_Period3, PRICE_CLOSE, MODE_SIGNAL, 1 );
   MACD_Value1_3 = MACD_MAIN1_3 - MACD_SIGN1_3 ;

   double FastHH2 = Close[iHighest(NULL, 0, MODE_CLOSE, Fast_period, 2)];
   double FastLL2 = Close[iLowest(NULL, 0, MODE_CLOSE, Fast_period, 2)];

   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
   OOPL = OrderOpenPrice();   

   //買いポジションのエグジット
   if(    ((MACD_Value1_1 <0 && MACD_Value1_2 <0) || OOPL - ILC*Point >= Close[1]  || (Close[2] >= FastLL2-margin && Close[1] < FastLL2-margin ))
       && ( 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(    ((MACD_Value1_1 >0 && MACD_Value1_2 >0) || OOPS + ILC*Point <= Close[1]  || (Close[2] <= FastHH2+margin && Close[1] > FastHH2+margin ))
       && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if(    MACD_Value1_1 >0 && MACD_Value1_2 >0 && MACD_Value1_3 >0  && MACD_MAIN1_3 >0 && damiani_f() ==1
       && ( 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,Yellow);
    }

   //売りエントリー
   if(    MACD_Value1_1 <0 && MACD_Value1_2 <0 && MACD_Value1_3 <0 && MACD_MAIN1_3 <0 && damiani_f() ==1
       && ( 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,Red);     
    } 

   return(0);
  }

関連記事

スイスフラン暴騰騒動

スイスフラン暴騰騒動(2)

###

関連記事

ほったらかしでも月100万円儲かるFX自動売買 (2)

ほったらかしでも月100万円儲かるFX自動売買 posted with ama

記事を読む

[FX]一目均衡表の雲の色

一目均衡表の雲についてですが、「この反転が相場の転換を示唆する」という考え方があります。 本当

記事を読む

中国バブル崩壊は不動産から始まる?

中国内部からのいい情報源を見つけました。 中国経済が上向く要素はなにもない ということです。

記事を読む

OANDA のオープンオーダーとオープンポジションについて(1)

これが OANDA のオープンオーダーとオープンポジション。 全世界の3割近くの注文と保有

記事を読む

[FX] 自動売買始めました

昨週より新たに FXTF さんに別の FX 口座を開き、自作の自動売買プログラムを実際に運用し始めま

記事を読む

脳はお高いものがお好き

* この前、購買心理学の本を読んでいると・・・ 脳は 高価なものだと知っているモノは、無意識

記事を読む

VQ を使ったシンプルな自動売買システム

VQ という摩訶不思議なインジケーターがあります。始値、終値、高値、安値のそれぞれの移動平均線を使っ

記事を読む

【FX】東京仲値トレード

以前も試したのですが、東京仲値トレード という有名なトレード法があります。 仲値とは、その国の

記事を読む

地方自治法施行60周年記念貨幣 5百円バイカラー クラッド貨幣 平成21銘 4点セット 落札

昨日の記事「地方自治法施行60周年記念貨幣 5百円バイカラー・クラッド貨幣「奈良県」」の続きです。

記事を読む

ふるさと納税のお礼のパソコンがやってきた

長野県飯山市に 10万円の寄付(いわゆるふるさと納税)をすればもらえるという噂のパソコン様、

記事を読む

Message

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

なぜ人気なのか、フェルメール

フェルメールの生涯と特徴 ヨハネス・フェルメール(1632年 - 1

次世代通信関連 世界株式戦略ファンド(予想分配金提示型) の7月分配金決定

次世代通信関連 世界株式戦略ファンド(予想分配金提示型) 、愛称「Th

PRESIDENT 年収が10倍になるAI仕事術

★★★☆☆ プレジデントの 2026年5/29号 です。 AI

【FX】2026年7月2日のやばかった瞬間

2026年7月2日はじつは やばかった瞬間がありましたという話。

Claude Fable 5 が無料使用期間中

アンソロピックが 6月に発表したものの、米政府の輸出規制により日本では

→もっと見る

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