*

[FX] 一目均衡表+STC フィルタ 完成版

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

以前ここで発表した一目均衡表のシステムに初期ロスカットをつけたものです。

Schaff Trend Cycle フィルタをつけているので逆向き暴発は多少防げると思います。

なにもつけないほうが爆発的な利益がとれることもありますが、かなりバクチっぽいです。

いろいろつけたので安全性は高めと思います。

一目均衡表なので、15分足でも使えます。

EURUSD あたりでそこそこいい結果がでています。

Indicators の Downloads フォルダに STC_pure_S.mq4 を入れてくださいネ。

プログラムソース

//
// yasciiIchimoku03c
//           一目均衡表 + HL trailing stop + STC filter + Time filter
//         Indicators\Downloads フォルダに STC_pure_S.mq4 を入れてください

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

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

extern int MA_Short=8;
extern int MA_Long=13;
extern int MA_Cycle=5;
int PriceType=0;
extern int SigPeriod=3;

extern int BB_Period=20;
double Deviation = 1.0;

extern double ILC = 20.0 ;

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

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 HH1 = High[iHighest(NULL, 0, MODE_HIGH, HL_Period, 1)];
   double LL1 = Low[iLowest(NULL, 0, MODE_LOW, HL_Period, 1)];

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET); 
   OOPL = OrderOpenPrice();
   if( (Bid < LL1 || ( 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 > HH1 || ( 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 ten1 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 1, 1);
     double kij1 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 2, 1);
     double ten2 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 1, 2);
     double kij2 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 2, 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);

     double FastHH2 = Low[iHighest(NULL, 0, MODE_HIGH, Fast_period, 2)];
     double FastLL2 = High[iLowest(NULL, 0, MODE_LOW, Fast_period, 2)];

     double stc1 = iCustom(NULL,0,"Downloads\\STC_pure_S",MA_Short,MA_Long,MA_Cycle,PriceType,SigPeriod, 0, 1);
     double stc2 = iCustom(NULL,0,"Downloads\\STC_pure_S",MA_Short,MA_Long,MA_Cycle,PriceType,SigPeriod, 1, 1);


   //買いポジションのエグジット
    OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);
    OOPL = OrderOpenPrice();
    if( 
            (ten1 < kij1 || Close[1] < cla1 || Close[1] < clb1 || Close[1] < FastHH2) // && ( 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( (ten1 > kij1 || Close[1] > cla1 || Close[1] > clb1 || Close[1] > FastLL2 ) // 
          && ( Ticket_S != 0 && Ticket_S != -1 ))
    {   
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
      if( Exit_S ==1 ) {Ticket_S = 0;}
    } 

   //買いエントリー
   if( ( ten1 > kij1 || ( ten1 == kij1 && ten2 == kij2 && ten1 > ten2 ))  
       && Close[1] > cla1 && Close[1] > clb1 && stc1 > stc2
       && (Hour() >= in_time && Hour() <= out_time) 
       && ( 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( ( ten1 < kij1 || ( ten1 == kij1 && ten2 == kij2 && ten1 < ten2 )) 
       && Close[1] < cla1 && Close[1] < clb1 && stc1 < stc2 && (Hour() >= in_time && Hour() <= out_time) 
       && ( 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,Blue);   
    }

   return(0);

  }
  

###

関連記事

関東と関西

* 関西人はいかに安く買ったかを自慢し、関東人はいかに高く買ったかを自慢すると言われていますが

記事を読む

株 デイトレード常勝のルール / 二階堂 重人

株 デイトレード常勝のルール 二階堂 重人 すばる舎 2008-02-20

記事を読む

[FX]時の旅人 試運転 1日目

時の旅人システム 昨日から24時間ほど自作の「時の旅人システム」の試運転をした結果です。 「

記事を読む

[FX]現在実稼働中の自動売買システム ysVR01.ex4

11月中に稼働していたシステムのうち、ブレイクアウト系の1つ ysVR01.ex4 の紹介です。

記事を読む

曜日特性(2)

前回の記事「曜日特性」のモデルですけど、実際に運用するとどんなことになるのか検証してみました。

記事を読む

超シンプルな自動売買プログラム(4) MACD&RSI

稼ぐ人のFX 儲けの流儀 (超トリセツ) バウンド インターナショナル・ラグジュア

記事を読む

簡単な平均足システム (2)

以前の記事「簡単な平均足システム」で作った簡単な平均足システムを改良してみました。 改良その1

記事を読む

FXブレイクアウトシステムのテスト

ブレイクアウトシステムは今まで食わず嫌いでしたが、試作してみました。 ルールはシンプル。

記事を読む

MACDバーシステムの改良(4) 早めの利益確定

あの自動売買システム、しつこく変更しています。 上が変更前。下が変更後。 若干違いますね。

記事を読む

スローな TII にしてくれ

TII をさらに使いやすくする方法を考えました。 下のチャートのサブウィンドウに3種類の TI

記事を読む

Comment

  1. onem より:

    こんばんわ。
    EAは問題なく動作いたしますがインディケータ側のSTC_pure_S.mq4側が少し多めのエラーを出します。

    おそらく、エディタ側の変換がうまくいっていないかと思われます。よろしければご修正の程お願いいたします。

    • kotaro.yasuiwa@gmail.com より:

      これもワードプレスの変換ミスですね。お知らせありがとうございました。
      リンク方法を変えておきました。一応動くことを確認したので大丈夫かと思います。
      よろしくお願いします。

Message

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

日本人の給料はなぜこんなに安いのか / 坂口孝則

★★★☆☆(思ったより良い) 坂口さんは以前から何冊か読

米国株投資(2) ETF ってすごい

昨日の記事「米国株投資(1)」の続きです。 本日は米国ETF の

米国株投資(1)

先月から米国株投資信託&ETF を始めましたが、いい時代になりましたね

金持ちになる男、貧乏になる男 / スティーブ・シーボルド

★★★★☆ スティーブ・シーボルドのことは他の本で知りま

OM-MF4+WP-SPMF4 バスレフスピーカーのその後

今年のムックの付録のマークオーディオ製フルレンジユニット OM

→もっと見る

PAGE TOP ↑