2017年4月14日金曜日

[MT4プログラム]小ネタ 100pips毎に平行線を引くスクリプト

なんとなくドル円とかって、100pips毎のラインを超えると10pipsぐらいは必ず進む気がするんですよね?

確認するのに100pips単位で平行線が引かれているとよいなーということで、ということで、100pips毎に平行線をスクリプトです。

■USDJPY 100pips毎に平行線

なお、EURUSDなどでも100pips毎に引けるようにしてあります。
■EURUSD 100pips毎に平行線

ソースコード上の赤字になっている部分を書き換えると100pips以外にも引けるかと。


//------------------------------------------------------------------
// 100pips単位にラインを引く
#property copyright "Copyright 2017,  Daisuke"
#property link      "http://mt4program.blogspot.jp/"
#property version   "1.00"
#property strict

#define OBJECT_NAME "OBJ_DRAW_HLINE_"

//------------------------------------------------------------------
// 100pips単位にラインを引く
void OnStart()
{
   //Pips計算 小数点桁数が3or5の場合、Point()*10=1pips
   int digit = (int)MarketInfo(NULL, MODE_DIGITS);
   double point = (double)MarketInfo(NULL, MODE_POINT);
   int pipsRate = digit == 3 || digit == 5 ? 10 : 1;

   int pips100 = 100 * pipsRate;

   int high = (int)(iHigh(NULL, PERIOD_MN1, iHighest(NULL, PERIOD_MN1, MODE_HIGH)) / point) + pips100;
   int low = (int)(iLow(NULL, PERIOD_MN1, iLowest(NULL, PERIOD_MN1, MODE_LOW)) / point) - pips100;
   
   high = high - (high % pips100);
   low = low - (low % pips100);
   
   for( int price = low; price <= high; price += pips100)
   {
      string name = OBJECT_NAME + IntegerToString(price);
      if ( ObjectCreate( 0,name , OBJ_HLINE, 0, 0, price * point ))
      {
         ObjectSetInteger(0, name, OBJPROP_SELECTABLE, false); 
         ObjectSetInteger(0, name, OBJPROP_STYLE, STYLE_DOT); 
         ObjectSetInteger(0, name, OBJPROP_HIDDEN, true); 
      }
   } 
}

ついでに消すスクリプトです。

//------------------------------------------------------------------
// 100pips単位にラインを引くで引いたラインを削除する
#property copyright "Copyright 2017,  Daisuke"
#property link      "http://mt4program.blogspot.jp/"
#property version   "1.00"
#property strict

#define OBJECT_NAME "OBJ_DRAW_HLINE_"


//------------------------------------------------------------------
// 100pips単位にラインを引くで引いたラインを削除する
void OnStart()
{
   int total = ObjectsTotal();
   //生成したオブジェクトを削除する。
   //0から削除するとインデックス位置がずれて
   //正しく削除できないため、後ろから削除するようにする。
   for( int i = total - 1; i >= 0 ; i--)
   {
      string name = ObjectName(0, i);
      
      // 先頭文字列がRangeRectangleNameと一致する場合、削除する。
      if ( StringFind(name, OBJECT_NAME) == 0 )
      {
         ObjectDelete(0, name);
      }
   }
}


「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

2017年4月13日木曜日

[Gewinn9]フラクタルによる逆張りEA

懲りていません。
逆張り最高です。逆張りだけで生きています(笑)

Fractalsを利用したEAですが、思ったよりサクッとPF1.8を超えてきたため、もうFX-ONに送付してしまいました。Gewinnシリーズ9番目です。

2週間ぐらいは計測しているかと思いますので、そのうち公開されます。
先着10名様に9800円でまず販売いたします。

お金を払ってでも人柱になりたいという奇特な方向けです!


Gewinn7/8ではTickを参照しているため業者間やバックテストとの差異が大きいという問題に悩まされました。
Gewinn9はフラクタルしか(ATRも少し見ていますが)見ていない単純なEAです。
考え方も公開しています。
http://mt4program.blogspot.jp/2017/04/blog-post_61.html


2005-2016のバックテストはこんな感じです。

通貨ペアEURUSD (Euro vs US Dollar)
期間1時間足(H1) 2005.01.03 00:00 - 2016.12.30 18:00 (2005.01.01 - 2016.12.31)
モデル全ティック (利用可能な最小時間枠による最も正確な方法)
パラメーターSep00=""; MagicNumber=28980001; IsCountdong=false; SpreadFilter=5; MaxPosition=4; Comment="Gewinn9_EURUSD"; Lot=0.5; Sep01=""; MaxProfit=400; StopLoss=150; IsTrailing=true; TrailingStartPips=150; TrailingPips=80; IsBreakEven=true; BreakPips=30; MaxOpenBars=240; CloseWeekEnd=false; Sep02=""; Aggressiveness=1; SignalCloseUpper=30;
テストバー数75152モデルティック数138072570モデリング品質90.00%
不整合チャートエラー0
初期証拠金10000.00スプレッド20
純益63635.99総利益135509.08総損失-71873.09
プロフィットファクタ1.89期待利得74.87
絶対ドローダウン1914.66最大ドローダウン5621.38 (18.37%)相対ドローダウン25.38% (2749.66)
総取引数850売りポジション(勝率%)414 (84.78%)買いポジション(勝率%)436 (81.19%)
勝率(%)705 (82.94%)負率 (%)145 (17.06%)
最大勝トレード2002.78敗トレード-766.74
平均勝トレード192.21敗トレード-495.68
最大連勝(金額)46 (9263.21)連敗(金額)6 (-732.64)
最大連勝(トレード数)10418.44 (39)連敗(トレード数)-3025.11 (4)
平均連勝8連敗2



「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

2017年4月12日水曜日

[検証]フラクタルのレンジブレイク長期トレンド順張り短期逆張り戦略

さて、フラクタルのH4はレンジブレイクの逆張りを仕掛けた方がよい結果となりました(笑)

もう少し戦略を検証してみましょう。
逆張りの基本は長期トレンドに対しては順張りとすることです。

そこで、週足のフラクタルトレンドに対しては順張り、4時間足のフラクタルに対して逆張りというの事を基本に考えていきます。

ルールは次の通り

1.週足のフラクタルトレンド方向には逆らわないようにします。

2.4時間足でフラクタルをブレイクした後の落ち着いた期間を狙います。
 ちょっとEAで検証してみましたが、落ちているナイフを直接手に持つのは、さすがにダメなようです(汗)地面への跳ね返りかも?というということで、一回フラクタルが現れた後を狙います。


3.1時間足でのフラクタルでブレイクした後のフラクタル検出でポジションオープン
基本は4時間足と同じですが、トレンド強度が落ちたタイミング(フラクタルを検出したタイミング)でポジションをオープンします。

週足、4時間足は現在足、ポジションオープンの1時間足だけ確定足を利用したEAの結果がこちらです。

0.1ロット 最大4ポジション、最大損失200pips、最大利益400pips
50pipsにてブレークイーブン設定



通貨ペアEURUSD (Euro vs US Dollar)
期間1時間足(H1) 2005.01.03 00:00 - 2016.12.29 23:00 (2005.01.01 - 2016.12.30)
モデル全ティック (利用可能な最小時間枠による最も正確な方法)
パラメーターSep00=""; MagicNumber=86290001; IsCountdong=false; SpreadFilter=5; MaxPosition=4; Comment=""; Lot=0.1; Sep01=""; MaxProfit=400; StopLoss=200; IsTrailing=false; TrailingStartPips=100; TrailingPips=50; IsBreakEven=true; BreakPips=50; MaxOpenBars=240;
テストバー数75134モデルティック数137962416モデリング品質90.00%
不整合チャートエラー0
初期証拠金10000.00スプレッド20
純益10098.90総利益34314.57総損失-24215.68
プロフィットファクタ1.42期待利得11.46
絶対ドローダウン1125.23最大ドローダウン1693.46 (10.89%)相対ドローダウン13.42% (1602.68)
総取引数881売りポジション(勝率%)416 (79.57%)買いポジション(勝率%)465 (71.18%)
勝率(%)662 (75.14%)負率 (%)219 (24.86%)
最大勝トレード400.27敗トレード-205.52
平均勝トレード51.83敗トレード-110.57
最大連勝(金額)44 (2562.83)連敗(金額)8 (-376.54)
最大連勝(トレード数)2562.83 (44)連敗(トレード数)-916.59 (7)
平均連勝7連敗2


おおお。思ったより悪くないです。
このままEAとして販売してもいいぐらいです。ちょっとドローダウンが大きいのが気になりますが。9800円ぐらいならほしい!って方いらっしゃいましたらFX-ONでメッセージください。提出してみます。

はっきりしているのは、4時間足のレンジブレイクは大半がだまし!っていうことです(笑)

※フラクタルトレンドのソースコードの公開といったん停止します。

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

[雑記]逆張りサイコー

まぁ、トレンド転換系のインジケータを素直にトレードして勝てる試しはないので、まぁ無理だろうと思ったのですが・・・。

■フラクタルトレンドH4で、順張りトレード

■フラクタルトレンドH4、逆張りトレード

逆張りサイコーwっていう結果でした。

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

2017年4月11日火曜日

[MT4インジケータ]トレンドの方向を2本で判定する、その2表現変更

さて、昨日作ってみたフラクタルレンジブレイクを利用したトレンド判定のインジケータですが、フラクタルの発生でトレンド方向を切り替えるのは乱暴すぎるかもしれません。

インジケータとして利用するには表現の問題も重要です。

そこで、同じ計算ですが、サブチャートに出す方法を少し変えてみます。

昨日の記事
では、フラクタルが発生するたびにトレンドの方向を切り替えていましたが、フラクタルの発生だけでは変えずフラクタルのブレイクでトレンドが切り替わると仮定して、トレンドを示すバーのサイズをフラクタルの方向で切り替える形にしてみました。

■上、昨日公開したもの/下、表現を修正したもの

表現している内容は、それほど変わっていないのですが、見た目がずいぶん異なりましたね。

特に時間足以下では、フラクタルの発生が細かすぎるため、このように取りまとめてしまった方が見やすいです。
しかし、前の状態では、±0.5を往復している場合、レンジと想定できたのですが、こちらのインジケータではその判定は行えません。

※ソースコードの公開を停止しました。

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。

2017年4月10日月曜日

[MT4インジケータ]トレンドの方向を2本で判定する。

■フラクタルラインブレイク見える化インジケータ

チャートのプライスアクションとして、レンジブレイクは有名です。
レンジブレイクもだましが多いですが、超えた瞬間だけ狙うEAというのが、少し前、人気でしたね。私もこんな人気EAを開発したいです。

ブレイクスキャルシステム
ブレイクアウトの瞬間を掠め取る!!ヒットアンドアウェイのスキャルシステムです。
ブレイクスキャルシステム
ブレイクスキャルシステム | fx-on.com

さておき、レンジの判定をどこに置くかはいろいろノウハウがあるでしょうが、一番最短の判定として、5本の中央値が最安値、高値だった場合、次、そこを超えるかどうか?という判定はどうでしょうか?
まぁ要はフラクタルですね。

フラクタルにチャートの横線描画して超えたかどうかを見るインジケータは探せばすぐにあります。
ここはEAでも使いやすいようにはっきりとサインとして現れるようにサブチャートに出したいと思います。


また、頂点が検出された時点からトレンド方向が発生していると仮定して頂点検出が出来る2本後の時点から半分の大きさのラインを描画して多分下げとか多分上げとかを書いています。


この短い線が交互に発生するとレンジです。
さすがに1時間足以下だとだましが多くて、これをサインにはできそうじゃありませんが、日足とかではある程度参考になりそうな気がしますね。

※ソースコードの公開を停止しました。

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ FX テクニカルトレード派へ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。