「マネー」カテゴリーアーカイブ

2015/4/16 逆トレンドは順調に進行中

「 2015/4/15 逆トレンドは一休み?」の続きです。

GBPUSD 1時間足です。

あれからセンターボリンを突き抜けてしまい、-2σ を抜けてから跳ね返っていますね。

相当シコリがたまっていたようです。

その後はグングン上昇。

「+2σ抜けしてから調整」を 2回繰り返しています。

2回めの+2σ抜けで前回 OANDA の Open Orders で予想した 1.487 をわずかに抜いています。

現在OANDA の Open Orders を見ると、下に買い注文がドッサリあるので下がることはまず考えられません。

要するにまた上がる可能性がきわめて高いってことです。

EA は起動していますが、タイムフィルタのおかげで動いていません(タイムフィルタの設定を変えれば今からでも参戦できます)。

下がるのは考えにくいので、しばらく「Only Long」にしておいてもいいかもしれません。

EA の起動について

EA によっては起動して次の足でエントリできるものと、もう一つ二つ待たないと起動しないものがあります。

うちの VQ はバージョンにもよりますが、前者。

ADX や平均足システムは後者になります。

要するにその EA の採用するエントリ条件によってそれぞれ違うわけです。

ソースのついていない実行ファイルのみの EA を動かす場合は注意が必要です。

あらかじめデモ口座などで挙動をチェックする必要があります。

EA の起動が間に合わなければ、とりあえず手動で成り行きで入って、EA が起動したらそちらに引き継ぐ(手動のものは決済するかオートトレールにしてリリースするか)といいと思います。

###

[FX] 2015/4/15 逆トレンドは一休み?

昨日の記事「2015/4/14 予想通り逆トレンドがキター?」で始まった逆トレンドは雲を抜けたところで一時的に収束しています。

OANDAの未執行注文(Open Orders) で見られた高値側に大量の売り注文があったのでジワジワと押し下げられた格好です。

もう一回雲にタッチするかな、と思ったらボチボチ上昇の気配。センターボリンで跳ね返っていますね。

もうルビコン川は渡ってしまったわけですから。

今の Open Orders 板を見ると、下には行かずに上に 1.487 くらいまでは行きそうな感じですよね。

1.4800 の手前にカベがあるのでそれを越えなきゃいけませんが。

お、ぼちぼち EA の起動時間です。次の足が決まれば始値で起動する EA がありそうですが・・・今回は しなかった。

もう少し上昇するのに時間が必要でしょうか。

他の通貨ペアでは有望そうなものもありますが、パラメーターが最適か不安。

デモ口座だけ動かしておきますかね。

###

[FX] 2015/4/14 予想通り逆トレンドがキター?

GBPUSD 1時間足ですが、あれから雲をちょっと下抜けして上昇し、上に一気に抜けました。

予想通りのトリプルボトム完成。

チャンスです。

GBPUSD は成り行き買いしておきました。

他の通貨のうち同じように雲抜けしているものは EA を再起動しておきます。

まだ抜けていないものは様子見ですが。

OANDAの未執行注文(Open Orders) では上に大量の売り注文があり、もたつくかもしれませんが、損切りドテン買いが始まって売り注文を埋めてくれれば 結構すんなり上昇するのではないでしょうか。 > http://www.oanda.jp/analysis/forex-order-book.php

*

上記のチャートの2段目は自作の Bollinger Band Width Ratio(シグナル付き)で、バンド幅の拡散&収縮を見ます。

黄色が青を上抜ければミニトレンド開始、下抜ければミニトレンド終息というわけです。

手動の利益確定に便利です。

プログラムソースはこちら> Bollinger BandWidth について

###

[FX] 2015/4/13 EA 緊急停止 トレンドが消失(2)

以前の記事「2015/4/13 EA 緊急停止 トレンドが消失」でも書きましたが、GBPUSD 1時間足で見ますと、4/13 9時(日本時間15時)くらいからちゃぶついていることがわかります。

そして、4/13 16時に転換線と基準線がクロスしています(矢印)。レートも上に抜けています。

これは 4/8 17時から始まった長いトレンドの終わりを示唆しています。

波動の形を見ても終わりそうな感じですね。

さらに、ボリンジャーバンドでも 15時に終値がセンターボリン(SMA20)を越えており(矢印)、トレンドの終息を示唆していますね。

トレンドは終わっちゃったということです。

新しい恋を探しましょう。

*

現在はレートは雲のまっただなかにあります。

この雲は、

  1. 陰転している
  2. 1時間足である(分足より強力)
  3. 厚い
  4. レートが水平方向から突入

という4点から考えるに、そうたやすくは抜けないと思います。

ただし、雲をもし上に抜けた場合は損切り&ドテン買いの嵐が起きると思われ、大きなチャンスになります。

下へ押し返された場合はあまり強い売りサインにはなりません。むしろすぐに反転上昇してトリプルボトムになりそうな予感がします。

###

 

[FX] 現在稼働中の VQシステム yasciiVQ04e.ex4

昨日なんとかがんばってくれた VQ さんちの現役くんを紹介しておきます。

デモ口座で動いています。

Downloadsフォルダに VQ_bars が必要です。MT4 からダウンロードしてください(無料)。

プログラムソース

//
// yasciiVQ04e.mq4
//           VQ_bars 使用(Downloadsフォルダに VQ_bars が必要)
//           HLBand(LHH)& Cloud & Time filter

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

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

extern int HL_period = 14 ;
double margin = 0.0 ;

extern double ILC = 13.0 ;

extern int       HL_Period=14;

// VQ_bars 用
extern   int      Length=6;
extern   int      Method=3;
extern   int      Smoothing=1;
extern   int      Filter=1;
extern   bool     Steady =false;

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

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 HH1 = High[iLowest(NULL, 0, MODE_HIGH, HL_period, 1)];

double LL1 = Low[iHighest(NULL, 0, MODE_LOW, HL_period, 1)];

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET); 
   if( Bid < LL1-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> HH1+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) ;

   double dir1 = iCustom(NULL, 0, "Downloads\\VQ_bars",Length,Method,Smoothing,Filter,Steady,4,1);
   double dir2 = iCustom(NULL, 0, "Downloads\\VQ_bars",Length,Method,Smoothing,Filter,Steady,4,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 HH2 = Low[iHighest(NULL, 0, MODE_CLOSE, HL_Period, 2)];
    double LL2 = High[iLowest(NULL, 0, MODE_CLOSE, HL_Period, 2)];

   double lc = ILC;
   if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;

   //買いポジションのエグジット
    OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET); 
    OOPL = OrderOpenPrice();
    if(    ((dir1==-1 && dir2 ==1) || ( OOPL - lc*Point >= Close[1] ) || Close[1] < HH2) 
            && ( 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(    ((dir1==1 && dir2 ==-1)||( OOPS + lc*Point <= Close[1] ) || Close[1] > LL2) 
          && ( Ticket_S != 0 && Ticket_S != -1 ))
    {    
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
      if( Exit_S ==1 ) {Ticket_S = 0;}
    }  

   //買いエントリー
   if( (dir1==1 && dir2 ==-1)
       && (Close[1] > cla1 && Close[1] > clb1)
       && (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( (dir1==-1 && dir2 ==1)
       && (Close[1] < cla1 && Close[1] < clb1)
       && (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);

  }

###

 

[FX] 2015/4/13 EA 緊急停止 トレンドが消失

昨日は週明けの月曜日ということもあり、通常よりも夜間の仕事が多めで、夜12時ごろまで仕事をしていました。

EA は一日放置と決めていたので監視しておりませんでしたが、寝る前に見てびっくり。

とりあえず手動でストップ。

*

数日間続いていたトレンドが消失しており、非トレンド状態になっているようです。

「これからもとのトレンドに戻る確率は1割程度、逆に動く確率は3割程度、ぐずつく確率は 6割くらい」と見て、トレンド相場でしか勝てない平均足 EA はしばらく止めることにしました。

デモ口座は監視のため続けますけど。

皮肉なことにデモ口座でのみ動かしていた VQ システムは勝っています。小回りが利くためでしょう。

同じくらい小回りの利くと思っていたリアル口座の ADX システムは芳しくないのがおもしろいですが。

早ければ水曜日くらいに逆向きのトレンドが発生するでしょう・・・?

*

朝起きて見てみると、非トレンドはさらにはっきりしてきており、通貨によっては雲に突入しているものもあります。

一目均衡表の雲は時間足が長いほど強靱で、5分足、15分足の雲は弱いですが、1時間足の雲はそこそこ強いです。

それが浸食されているってことはトレンドが明らかに崩れているってこと。

横向きの突入なので(水平飛行)、急に反対側に抜けるわけではなさそうですが。

雲抜けは最大のチャンスなので見逃さずにいたいものですね。

*

詳細な分析はのちほど。

とりあえず平均足システムはしばらく役立たずのようですので、止めてください。

###

 

[FX] 曜日属性

本日リアル口座で yasciiHA04c.ex4 を稼働し、放置していますが、ここまで勝ちがありません。

絶不調です。

以前にも書きましたが、週の初めはよく負けるのです。

2015/3/9 – 2015/4/11 の EYRUSD 1時間足 1万単位 の結果を曜日別にまとめますと、

月曜日 175.6
火曜日 76.9
水曜日 284.4
木曜日 206.9
金曜日 286.8

となります(総損益の単位はドル)。

マイナスではないので月曜日、火曜日は稼働していますが、勝率は低くなると思うので、負けず嫌いの人は水曜日から金曜日だけ動かすのがいいと思います。

*

欧米の機関投資家は勤務時間中しか取引しません。基本的にトレンドフォローですが、自分でしかけることもあります。

さらに彼らは週初めは先週と同じ方向でいくか逆でいくか迷うので、月曜日、火曜日は動きが揃いにくいのだと思います。

ということで戦略としては、彼らの勤務時間という観点からタイムフィルタで時間を選別し、一目均衡表 は欧米でも利用者が多いので雲つまりクラウドフィルタをかけ、週の前半は様子見またはロットを減らしておき、週の後半に勝負をかけるのがいいのではないかと思っています。

*

ついでに他の通貨ペアも調べました。

月曜日 火曜日 水曜日 木曜日 金曜日
EURUSD 175.6 76.9 284.4 206.9 286.8
AUDUSD 110.6 28 92.6 106.8 258.8
USDCHF 41.92 283.9 121.8 155 261.6
GBPUSD 94.1 -492.5 624.2 141.9 379.5
GBPJPY 64.5 93.62 118.7 40.4 172.3
AUDHKD 104.1 7.2 90.8 101.6 80.8

GBPUSD は火曜日は止めておいてください。AUDUSD, AUDHKD も止めておいたほうがいいかもね。

###

[FX] お勧めインディケーター ADXcrosses

私が愛用するインディケーターは、一目均衡表 、平均足、ADX、VQ が柱です。

Schaff Trend Cycle なども好きですね。

移動平均線や RSI なども使いますが。

ストキャス、MACD などはうまく使いこなせておりません。

ADXcrosses

ADXcrosses は MT4 からダウンロードできる無料のインディケーターです。こちらでも紹介されています。> MT4インジケーター紹介「ADXcrosses」

ローソク足に乗った赤矢印が売りサイン、青矢印が買いサインです。

パラメーターは一つ(ADXcrossesPeriod)だけとシンプル。デフォルトは 14 です。

小さくすれば小さい波にもうまく追従します。その分 ダマシも増えますが。

EURUSD 1時間足で、ADXcrossesPeriod を 少し短くした場合(10) と 極端に短くした場合(3) を示します。一目均衡表 も表示しています。

 

 

  1. こういうトレンド相場の時はかなり利益がでます。ADXcrossesPeriod が小さいとよく反転していますが、案外利益は少ないときが多いです。大きいと乗り遅れが多いような気がしますが、案外利益はとれたりします。
  2. トレンドでない相場ではADXcrossesPeriodを小さくしても反転回数が増えるぶん利益にならないことが多く、損失がふくらむだけになったりします。大きいと全く波に乗れなくてやはり損失がふくらみます。

このインディケーターは使っていませんが、原理を EA に実装したのが yasciiADXcross03d.ex4 です。

やはり、直近の相場に合わせて最適化するのが一番ですね。

関連記事

###

[FX] PRICE_MEDIAN を使う (2) 半値の概念

以前の記事「 PRICE_MEDIAN を使う 」 の続きです。

移動平均線、ADX、RSI などたいていの指標は終値を元に計算されています。

でも終値というのはたまたまその時間区切りでの値ですから、サーバー時間が 1分あるいは数秒狂っていても変わってしまうんですね。

始値もおなじ。

こんな不安定なものに頼っていいのかというのが以前からの大きな心のしこりとなっていました。

*

反面、高値、安値は多少時刻が狂っていても変わりません。

高値と安値は過去にそこで売りと買いの攻防戦が行われた決戦場です。

相場の爪痕ですかね。すごく重要な意味があります。

それに比べると終値、始値なんてのはなんの意味もない・・・と思いませんか?

*

ということで、指標計算で使うべき1つの値としては・・・半値(高値と安値の平均値)がいいでしょう。

日本が誇るあの一目均衡表でも半値が多用されています。

多くの人は半値にはあまり意味を見いだしておられないようですが、高値づかみをした人と安値で売った人が同じ損をしている値と見ることができます。

高値で売った人と安値で買った人が同じ含み益を持っている値とも言えます。

そういう意味で、平均取得コストや平均含み益を示すと言ってもいいのかもしれません。

未来に影響する力がすごくあるように私は思います。

これは指標にどしどし使うべきでしょう。

*

ということで、ADXcross システムに半値の概念を持ち込んでみたのが、yasciiADXcross04d.ex4 です。

アニハカランヤというかアンノジョウと言うべきか、なかなかいい結果を出してくれます。

ADXcrossPeriod というパラメーターを小さくすれば比較的速いアップダウンにも対応します。ダマシも増えますが。

yasciiADXcross04d.ex4 のプログラムソースはこちら>  [FX] PRICE_MEDIAN を使う

###

[FX] zero trailing を平均足システムに / yasciiHA04d.ex4

昨日発表した平均足システム yasciiHA04c.ex4 に以前発表した「zero trailing」を組み込んで見ました。

zero trailing は私の造語ですが、エントリ後ある程度思惑通りに進んで、エントリポイントを十分超えたなと思ったら、ストップロスを初期ロスカットからエントリポイント(+スプレッド上乗せ)のところに置き直すことをさしています。

こうするとこの後は損切りしたときの損害がゼロになるので、損切りという概念はなくなり利益確定のみとなり、要するに”負け”はなくなります。

とりあえずエントリポイントを初期ロスカットと同じ幅だけ超えたら、ストップロスをエントリポイント(スプレッド分上乗せ)に移動するように改良してみました。それが yasciiHA04d.ex4 です。

結果  15/3/15 – 15/4/11 1時間足

通貨ペア HA04c HA04d
EURUSD 503 157
AUDUSD 491 463
USDCHF 846 587
GRPUSD 854 451
GRPJPY 310 272

改良前後のシステムの総損益(ドル)だけを比べてみました。

勝率はアップするものの早すぎる利益確定になって、後のおいしい部分をとりきれずに終わってしまうようです。

早く終わっちゃってダメねえ・・・”早漏ぎみ”だということでしょう。^^

平均足システムとのコンセプトのズレ

そもそも平均足システムは比較的長いトレンド(1時間足で 10-30本程度続くような)をターゲットに開発されています。

ADXcross や VQ ほど小回りがききませんので。

ですから 1時間より短い足ではうまく働かないことが多いのです。

1時間以内の細かな上下動のダマシを防ぐため平滑化した”平均足”なので、ある程度の逆行は許容してやらないといけません。

そもそも 1時間足というのは過去1時間のデータをたった4つの値(始値、終値、高値、安値)にしたものなので、細かな変動のデータなどは全部捨てています。さらに移動平均線などの指標ではこのうち終値しか見ないことが多いわけです。

どんなシステムを使ってエントリしても、エントリポイントではすでに逆行が始まっているバッドなタイミングのときも結構あります・・・たとえば、買いエントリしたときに”買い”とは真逆の方にグングン進行中だったりします。

要するに、ロスカットにはかなりの余裕が必要だということです。

そして時間足が長くなればなるほど余裕は大きめに持たせないといけません。

*

ある程度思惑通りにいくと、HLバンドトレーリングにより押し目にストップが切り上がって(売りの場合は切り下がって)いくので、zero trailing は HLバンドトレーリングが働くまでの逆行によってマイナス(せいぜい初期ロスカット分)になることを防ぐだけしか効果がありません。

それを防ぐのと、得られる利益が結構減るのと どちらを許容するかですね。

ADX や VQ のシステムも小回りがきくといってもせいぜい 15分足が限界ですから、これらに組み込んでも多少まし といったくらいで、同じ傾向であることは想像がつきますね。

ということで、あまりお勧めではありませんが、いちおうソースを載せます。

プログラムソース yasciiHA04d.mq4

//
// yasciiHA04d.mq4
//           Heiken_Ashi_Real(移動平均線クロス)を使用
//         通常平均足との組み合わせ 
//           with Time Filter
// 暴落対策変更 zero trailing

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

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

extern int HL_period = 12 ;
extern double ILC = 35.0 ;

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

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;

double TS1 = 0.0 ;
double TS2 = 1000.0 ;

int start(){

   double lc = ILC;
   if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;

    //暴落対策(始め)

 double HH1 = High[iLowest(NULL, 0, MODE_HIGH, HL_period, 1)];
double LL1 = Low[iHighest(NULL, 0, MODE_LOW, HL_period, 1)];

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET); 
   OOPL = OrderOpenPrice();
   if(Bid > OOPL + lc*Point ) TS1 = OOPL + Ask - Bid ;
   if( (Bid < LL1 || ( OOPL - lc*Point >= Bid ) || Bid <= TS1)
       && ( 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 < OOPS - lc*Point ) TS2 = OOPS - Ask + Bid ;
   if( (Ask > HH1 || ( OOPS + lc*Point <= Ask ) || Ask >= TS2)
       && ( 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_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_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] 来週は yasciiHA04c.ex4 を投入

来週稼働予定の EA をご紹介。

yasciiHA04b.ex4 を改良したものです。

基本的にほとんどおなじですが、エントリ条件を少し緩めました。

一度トレードを降りてから仕切り直しが早くなる効果があると思います。

*

2015/3/15~2015/4/11 の 1ヶ月間の過去データで最適化したパラメーターは次のとおりです。

  • 「総損益$」 は 2015/3/15~2015/4/11 での最適化後の最大利益(ドル)
  • 「今週」はそのパラメーターを使った場合に 2015/4/6~2015/4/11 稼働させていたときの想定利益です(ドル)
  • ロットは 0.1(1万通貨)になります
  • 使用時間足はすべて 1時間足になります

推奨パラメーター(2015/4/12-18用)

通貨 in_time out_time FP ILC 総損益$ 今週
EURUSD 10 22 11 30 503 125
AUDUSD 7 19 12 14 491 122
USDCHF 10 19 7 41 846 208
GBPUSD 7 20 13 34 854 260
GBPJPY 8 15 12 19 310 339

このパラメーターで来週は稼働させてみます。

なんとか 1000ドルオーバーを目指したいですね。

GBPJPY は今週の成績がよかっただけで来週もくるとは限りませんが。

プログラムソース  yasciiHA04c.ex4

//
// yasciiHA04c.mq4
//           Heiken_Ashi_Real(移動平均線クロス)を使用
//         通常平均足との組み合わせ 
//           with Time Filter
// 暴落対策変更

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

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

extern int Fast_period = 12 ;
extern double ILC = 35.0 ;

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

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_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_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] リアル口座 2015/4/6-10 結果

今週のリアル口座の結果ですが、やや赤字となってしまいました。

デモ口座では15万円ほど勝っているのになんでやねん!

リアル口座では途中で EA を入れ替えたり、パラメーターを変更したり、通貨ペアを入れ替えたりしたりのでグチャグチャになってしまったということでしょう。

リアル口座だとつい気になっていじってしまうのでした。

本来はそういう変更はデモ口座で行うべきで、リアル口座ではなるべく 1週間は手をつけずに見守るべきです。

このあたりがメンタルの弱さでしょうか。^^

*

最終的に yasciiHA04c で USDJPY、AUDUSD、GBPUSD、USDCHF、EURUSD を、yasciiADX03d で EURUSD を運用しています。

15/4/6 09:00:02 buy 0.1 audusd 0.76298 15/4/6 13:00:47 0.76303 60
15/4/6 09:00:03 sell 0.1 eurusd 1.09753 15/4/6 13:00:00 1.09805 -620
15/4/6 14:00:00 buy 0.1 gbpusd 1.49418 15/4/6 16:41:21 1.49609 2273
15/4/6 14:00:00 buy 0.1 eurusd 1.09873 15/4/6 14:00:01 1.09869 -47
15/4/6 15:00:00 buy 0.1 eurusd 1.09884 15/4/6 15:00:00 1.09879 -60
15/4/6 16:00:08 buy 0.1 eurusd 1.10184 15/4/6 16:42:47 1.102 191
15/4/6 18:00:00 buy 0.1 audusd 0.76637 15/4/6 20:48:30 0.76282 -4233
15/4/7 09:00:00 buy 0.1 audusd 0.77039 15/4/7 09:47:31 0.76838 -2403
15/4/7 10:00:02 buy 0.1 usdchf 0.95798 15/4/7 11:17:44 0.95892 1175
15/4/7 12:00:11 buy 0.1 usdchf 0.96326 15/4/7 15:00:01 0.96126 -2497
15/4/7 14:00:02 buy 0.1 audusd 0.76822 15/4/7 15:08:40 0.76523 -3593
15/4/7 15:00:00 buy 0.1 eurusd 1.08595 15/4/7 20:00:00 1.08497 -1179
15/4/7 15:00:01 sell 0.1 usdchf 0.96126 15/4/7 17:00:02 0.96222 -1199
15/4/7 16:00:02 sell 0.1 audusd 0.76363 15/4/8 01:39:53 0.76442 -950
15/4/7 17:00:02 buy 0.1 usdchf 0.96222 15/4/8 01:55:49 0.96537 3922
15/4/8 09:00:00 buy 0.1 eurusd 1.08478 15/4/8 10:24:50 1.08669 2288
15/4/8 13:00:00 buy 0.1 chfjpy 124.643 15/4/8 14:29:34 124.54 -1030
15/4/8 13:00:02 buy 0.1 gbpusd 1.49358 15/4/8 15:50:56 1.49507 1784
15/4/8 17:00:00 buy 0.1 chfjpy 124.726 15/4/8 17:02:52 124.623 -1030
15/4/9 09:00:00 sell 0.1 audusd 0.76855 15/4/9 09:53:26 0.76997 -1706
15/4/9 09:00:01 sell 0.1 eurusd 1.07551 15/4/9 10:01:34 1.07852 -3618
15/4/9 10:00:13 buy 0.1 usdchf 0.9682 15/4/9 11:39:28 0.96998 2205
15/4/9 11:00:05 sell 0.1 eurusd 1.07439 15/4/9 13:25:27 1.07439 0
15/4/9 11:00:05 sell 0.1 eurusd 1.07439 15/4/9 14:14:38 1.07759 -3839
15/4/9 13:00:01 sell 0.1 usdjpy 120.069 15/4/9 14:04:15 120.029 400
15/4/9 14:00:04 buy 0.1 gbpusd 1.48273 15/4/9 15:02:35 1.48299 312
15/4/9 16:00:00 sell 0.1 eurusd 1.07427 15/4/10 00:24:35 1.06681 8995
15/4/10 16:00:00 sell 0.1 audusd 0.76548 15/4/10 16:27:12 0.76693 -1742
15/4/10 16:00:00 sell 0.1 gbpusd 1.46233 15/4/10 17:08:47 1.46585 -4226
15/4/10 17:00:00 sell 0.1 usdjpy 120.128 15/4/10 17:35:00 120.209 -810
15/4/10 17:00:00 sell 0.1 usdchf 0.98048 15/4/10 18:00:02 0.98001 576
15/4/10 17:00:00 buy 0.1 audusd 0.76849 15/4/10 17:29:23 0.7685 12
15/4/10 18:00:00 buy 0.1 gbpusd 1.4652 15/4/10 21:00:06 1.46499 -252
15/4/10 18:00:01 sell 0.1 usdjpy 120.194 15/4/10 18:10:35 120.276 -820
15/4/10 19:00:01 buy 0.1 usdjpy 120.294 15/4/10 19:20:32 120.214 -800
15/4/10 20:00:00 sell 0.1 eurusd 1.05912 15/4/10 23:00:00 1.0609 -2139

14600円のマイナス。

おかしいなあ、本来はプラスのはずですが。

途中で HA04a を 4/7 に HA04b に変え、4/9 にさらに HA04c に変えたんですね。

パラメータも変えたしね。

それが敗因か。

*

ちなみに週の最初から HA04c で運用していたと仮定してバックテストすると、

  1. USDJPY 29.1
  2. AUDUSD –79.6
  3. GBPUSD 182.1
  4. USDCHF 113.9
  5. EURUSD 111.8

とトータルで 357.3ドル(1万通貨)の黒字。

ADX03d は EURUSD 29ドルでした。

来週は運用中はなるべくいじらないように今週とはパラメーターだけを変えて臨みます。

###

[FX] 勝率を上げる zero trailing

勝率を上げる一つの方法を思いついたので、EA に組み込んでみました。

いえ、裁量ではしょっちゅう使っている手なんですが、EA ではいままで組み込んでいませんでした。

エントリ後ある程度思惑通りに進んで、エントリポイントを十分超えたなと思ったら、ロスカットを初期ロスカットからエントリポイント(+スプレッド上乗せ)のところに置き直すものです。

こうするとこの後は”負け”はなくなります。

どのくらい超えたらいいのかはいずれ調べることにして、とりあえず yasciiVQ04e.ex4 を使って、エントリポイントを 初期ロスカットと同じ分だけ超えたらエントリポイント+スプレッドのところにロスカットを移動するように改良してみます。

改良前 EURGBP 1時間足 2015/3/12-4/8

改良後 EURGBP 1時間足 2015/3/12-4/8

7勝8敗が 8勝7敗になっただけのようですが、最大負けトレード額も減少したのはうれしいですね。

だのに総損益が下がっているので、勝ちの額にもやはり悪影響があるようです。

要するに早すぎる利益確定になってしまう分が結構あるようですね。

プログラムソース yasciiVQ04f.mq4

//
// yasciiVQ04f.mq4
//           VQ_bars 使用
//           HLBand(LHH)& Cloud & Time filter
//           zero trailing

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

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

extern int       HL_Period=14;
extern int Fast_period = 14 ;
double margin = 0.0 ;

extern double ILC = 10.0 ;

// VQ_bars 用
extern   int      Length=6;
extern   int      Method=3;
extern   int      Smoothing=1;
extern   int      Filter=1;
extern   bool     Steady =false;

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

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;

double TS1 = 0.0 ;
double TS2 = 1000.0 ;

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 > OOPL + lc*Point) TS1 = OOPL + Ask - Bid ;
   if( (Bid < FastLL1 || Bid <= TS1 || Bid <= OOPL - lc*Point )
       && ( 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 < OOPS - lc*Point) TS2 = OOPS - Ask + Bid ; if( (Ask > FastHH1 || Ask >= TS2 || Ask >= OOPS + lc*Point)
       && ( 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 dir1 = iCustom(NULL, 0, "Downloads\\VQ_bars",Length,Method,Smoothing,Filter,Steady,4,1);
   double dir2 = iCustom(NULL, 0, "Downloads\\VQ_bars",Length,Method,Smoothing,Filter,Steady,4,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 HH2 = Low[iHighest(NULL, 0, MODE_HIGH, HL_Period, 2)];
    double LL2 = High[iLowest(NULL, 0, MODE_LOW, HL_Period, 2)];

   //買いポジションのエグジット
    OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET); 
    OOPL = OrderOpenPrice();
    if(    ((dir1==-1 && dir2 ==1) || ( OOPL - lc*Point >= Close[1] ) || Close[1] < HH2) 
            && ( 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(    ((dir1==1 && dir2 ==-1)||( OOPS + lc*Point <= Close[1] ) || Close[1] > LL2) 
          && ( Ticket_S != 0 && Ticket_S != -1 ))
    {    
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
      if( Exit_S ==1 ) {Ticket_S = 0;}
    }  

   //買いエントリー
   if( (dir1==1 && dir2 ==-1) 
       && (Close[1] > cla1 && Close[1] > clb1)
       && (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( (dir1==-1 && dir2 ==1)   
       && (Close[1] < cla1 && Close[1] < clb1) && (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);


  }

###

[FX] EA の使い方&デモ口座成績 2015/4/1-8

デモ口座近況

EA 日 売買時刻 取引 lots 通貨 売買値 決済値 損益(円)
HA04a 4/1 03:00:00 sell 1 gbpjpy 177.909 177.61 29900
HA04a 4/1 15:00:00 buy 1 gbpusd 1.47673 1.479 27211
DailyPivot01 4/6 00:06:17 sell 1 audjpy 90.772 90.866 -9400
DailyPivot01 4/6 13:00:02 buy 1 eurjpy 130.78 130.816 3600
DailyPivot01 4/7 00:00:20 buy 1 audjpy 90.776 90.843 6700
DailyPivot01 4/8 00:00:44 buy 1 eurjpy 130.128 130.13 200
VQ04e 4/8 10:00:00 sell 1 eurgbp 0.72957 0.724 99678

最近デモ口座は放置状態です。

動作EAを絞ってパソコンの負荷を軽減させております。

それでも 157889円のプラス。

リアル口座のほうはしょっちゅういじっており非常に混乱しています。週末にご報告の予定です。

*

デモ口座では EA は現在 3種類稼働させています。

平均足システム HA04a はバグがあったので 4/6 にHA04b にチェンジ。

DailyPivot01 は前日のピボット値に回帰するのを狙ったシステムですが、あまりかんばしくないですね。最適化のやりなおしが必要でしょうか。

4/8 に投入したばかりの VQ 指標を使った VQ04e は早速波に乗ってくれました。しばらく放置します。

EA の使い方

EA(expert advisor) というのは自動売買プログラムのことですが、戦争では武器にあたります。

その武器をどの事態にどう使うかは使い手にまかされています。

戦車にマシンガン射ってもタマのムダですね。損失だらけ。

EA は通貨ペアごとに過去数か月(いいのは3ヶ月・・・だめなら1ヶ月でもOK)のデータで最適化して、結果のよさそうな通貨ペアと EA の組み合わせを発見し、それをパソコンに仕掛けておくのです。

稼働中のEA が利益が出なくなったら、もちろんメンテが必要です。そういうときはデモ口座でのみ稼働させ、偶然なのかほんとうに時勢(相場)に合わなくなったのかを見るのです。

要は適材適所・・・いや 適材適時適所をわきまえるということです。

###

[FX] PRICE_MEDIAN を使う

以前作った ADX 指標を使った EA の yasciiADXcross02 は何度か改良して試しています。

トレンドに乗るのが素早く、降りるのもそこそこ早いのに、長いトレンドを最初から最後までよく捕まえるという優れものです。

Damiani フィルタは効果が薄いので除き、クラウドフィルタとタイムフィルタを加えて yasciiADXcross03 を作りました。

  • エントリシグナル: +DI と -DI のクロス+ADX フィルタ+クラウドフィルタ+タイムフィルタ
  • 決済シグナル: +DI と -DI の反転、もしくはHLBand のブレイク、もしくは固定ロスカット値を割る、もしくは暴落時

ADX の計算にはふつうは終値を使うのですが、試しに半値(PRICE_MEDIAN)を使うと結構面白い結果になりました。

EURUSD 1時間足 2015/3/12-2015/4/8

上が終値、下が半値(高値と低値の平均)を使った場合。

半値の方がはるかに優れていますね。

いつもこうなるとは限りませんが、一目均衡表 でも重視されている半値って実はすごく意味があるなあと思います。

理由は後述します。> [FX] PRICE_MEDIAN を使う (2) 半値の概念

*

あ、今回の総損益は 1万通貨単位のもので、いつも(1.0ロット=10万通貨単位)の 1/10 になっています。

リアル口座で運用し始めるときはいつも 0.1ロットからなので間違えないようにするため変更しました。

関連記事

プログラムソース yasciiADXcross03d.mq4

//
// yasciiADXcross03d.mq4
//     
//                with cloud filter ,PRICE_MEDIAN, Time filter

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

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

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

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

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;

extern double ILC = 20.0 ; 

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 plusdi2 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_MEDIAN, MODE_PLUSDI, 2);
     double plusdi1 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_MEDIAN, MODE_PLUSDI, 1);
     double minusdi2 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_MEDIAN, MODE_MINUSDI, 2);
     double minusdi1 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_MEDIAN, MODE_MINUSDI, 1);  

     double maindi1 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_MEDIAN, MODE_MAIN, 1); 
     double maindi2 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_MEDIAN, MODE_MAIN, 2);
     double maindi3 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_MEDIAN, MODE_MAIN, 3);
     double mainsig = ( maindi1 + maindi2 + maindi3 ) / 3.0 ;

     double FastHH2 = Close[iHighest(NULL, 0, MODE_CLOSE, Fast_period, 2)];
     double FastLL2 = Close[iLowest(NULL, 0, MODE_CLOSE, Fast_period, 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);  
   if(    ((plusdi1 < minusdi1 && plusdi2 > minusdi2 )  || Close[1] < FastLL2 - margin ) 
       && ( Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Blue);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   //売りポジションのエグジット

   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   if(    ((plusdi1 > minusdi1 && plusdi2 < minusdi2 )   || Close[1] > FastHH2 + margin ) 
       && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Red);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   
    
   //買いエントリー
   if(    ((plusdi1 > minusdi1 && plusdi2 < minusdi2 && maindi1 > 18.0 && maindi1 < 50.0 ) ||  
       (plusdi1 > minusdi1 && maindi1 > 18.0 && maindi1 < 50.0  && maindi1 > mainsig))
       && (Close[1] > cla1 && Close[1] > clb1)
       && (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,Blue);
    }
    
   //売りエントリー
    if(    ((plusdi1 < minusdi1 && plusdi2 > minusdi2  && maindi1 > 18.0 && maindi1 < 50.0 ) ||
       (plusdi1 < minusdi1 && maindi1 > 18.0 && maindi1 < 50.0   && maindi1 > mainsig))
       && (Close[1] < cla1 && Close[1] < clb1)
       && (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,Red);     
    } 
    
     
   return(0);
  }

[FX]yasciiHA04a 暴落対策変更

先週から実戦投入していた 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]yasciiHA04a パラメーター変更

以前の記事「[FX]yasciiHA04a 実戦投入」の続きです。先週金曜日は指標発表のため EA は止めていました。

デモ口座では動かしていましたが、1時間足だったので乱高下にはついていっておらず影響はなかったようです(そもそもポジションを持っていませんでした)。

さて、今回はタイムフィルタのパラメーターを調整してみました。

前回、2015/3/9 – 3/31(途中)までのパラメーターと先週末までのそれを比較してみます。

かなり変わるようなら問題です。

*

in_time はフィルターオンの時間、out_time はオフの時間です。

先週末までの 1ヶ月の総損益が 4000ドル以上のものを選別しました。

2015/3/9-31 2015/3/9-31 2015/3/9-31 2015/3/9-4/4 2015/3/9-4/4 2015/3/9-4/4
in_time out_time 総損益 in_time out_time 総損益
EU 9 20 6426 9 21 8393
EJ 12 19 3781 12 19 4156
AU 9 21 4676 9 21 4927
FJ 12 20 3524 11 20 4130
UF 10 18 4709 10 18 5946
GU 14 19 5134 14 19 6105

使用した EA はもちろん yaciiHA04a です。総損益はドル。

変更はわずかですむようですネ。

*

今週は EU(EURUSD)、UF(USDCHF) に加えて、AU(AUDUSD)、GU(GBPUSD) を実戦投入します。

週の前半は軟調、後半は絶好調となる気がしますが、さてどうなりますやら。

関連記事

[FX]yasciiHA04a 実戦投入

###

ふるさと納税2回め / 液晶ディスプレィ XU2390HS-B1(2)

前回の記事「ふるさと納税2回め / 液晶ディスプレィ XU2390HS-B1 」でご紹介した液晶ディスプレィ iiyama XU2390HS-B1。

長野県飯山市に 3万円ふるさと納税すると送られてきます。

飯山市にはすでにパソコン(10万円寄付)をもらっています。

自治体によっては年に一回しかお礼がもらえないことろもありますが、飯山市は何回でもOK。

> 飯山市のお礼一覧

iiyama XU2390HS-B1

iiyama スリムベゼル+AH-IPSパネル『XUシリーズ』 FullHD(1920x1080)モード対応 WLEDバックライト23型ワイド液晶ディスプレイ XU2390HS-B1 iiyama スリムベゼル+AH-IPSパネル『XUシリーズ』 FullHD(1920×1080)モード対応
WLEDバックライト23型ワイド液晶ディスプレイ XU2390HS-B1

マウスコンピューター 2014-02-10

売り上げランキング : 197

Amazonで詳しく見る

by G-Tools

上のアマゾンでは少し高いですが、価格.com で調べると、最安値ショップでも 19153円です。

寄付金 30000円に対して還元率は 63%ほど。とてもいいです。

そのまま(新品で)ヤフオクに出している人もいます(タダのもの売っちゃいかんでしょ^^)。15000円前後で取引されていますね。還元率 50%か。

繋いでみるとクッキリ系。

黒があざやかです。他の色も発色がいいです。

人によっては目が疲れるかも。

この前買った 22M35(LG製) がおなじ IPS 液晶にしては白っぽいぼけた感じが強いのとはまったく逆。

クッキリが好きな人は入手されてみては?

品切れかもしれませんが> ふるさと納税ポータルサイト

関連記事

ふるさと納税2回め / 液晶ディスプレィ XU2390HS-B1

###

超シンプルな自動売買プログラム(14) ハル移動平均線

久々に「超シンプルな自動売買プログラム」シリーズを再開しますか。

ハル移動平均線

HUL移動平均線(HMA、Hull Moving Average) はアラン・ハル(Alan Hull)という人によって開発された移動平均線です。

ソースを見ると、このあたりがキモですね。

vect[x]=2*WMA(x, period/2) – WMA(x, period);

WMA は”終値の LWMA” を示し、vect は直近半分の期間の2倍から直近の値を引いたもので、これで直近の半分(後半)を重視する重み付けをしていますね。

period/2 って、デフォルトは period=15 なんで整数にならなくてもいいんですね?

で、最終的に計算される HMA ってのは vect のさらに LWMA(線形荷重移動平均線)を取ったものです。

LWMA ってのはそもそも直近を重視するものなんですが、それを2回も行って、その間に独自の直近の後半部重み付けを加えるという、「歪んだ2枚のバンズで崩れたパテを挟んだ」ような状態になったものがハル移動平均線ですね。

はんぱない加重方法ですネ。

で、表示するとこんなの。

上昇トレンドでは緑、下降トレンドでは赤に切り替わって表示されるように工夫されています。

ローソク足によくまとわりついていますね。

period が 15 と大きいのに、トレンド切り替えのタイムロスがほとんどありませんねぇ。

すごい・・・

ダウンロード> HMA.mq4

HMA を使った自動売買プログラム

さて、EA化しましょう。

超シンプルに、終値が HMA を上抜きしたら買い、下抜きしたら売りにします。

これだけだとドテンになってしまうので、私お得意の HLバンドトレーリングストップ、暴落対策、固定ロスカット、クラウドフィルタ、タイムフィルタをゴテゴテにつけます。

え、シンプルじゃない?

まあ、いいでしょ。

EURUSD 1時間足 2015/3/9-31

トレンディな相場ではなかなかいいですね。

そうでないときは・・・地獄?

補足

もっとシンプルにしますか。

クラウドフィルタとタイムフィルタを除いたらこうなります。

取引数が4倍に増えましたね。ただし、総損益は 1.5倍どまり。

関連記事

超シンプルな自動売買プログラム(13) 前週の平均値と順張り 時間特性

プログラムソース

//
// yasciiHMA01.mq4
//           HMA 使用(Downloadsフォルダに HMA.mq4 が必要)
// 

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

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

extern int Fast_period = 14 ;
extern double margin = 0.0 ;
int HL_Period = 14 ;

extern double ILC = 10.0 ;

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

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(){

    if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

   double dir1 = iCustom(NULL, 0, "Downloads\\HMA",15,3,0,2,1);
   double dir2 = iCustom(NULL, 0, "Downloads\\HMA",15,3,0,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 HH2 = Low[iHighest(NULL, 0, MODE_LOW, HL_Period, 2)];
    double LL2 = High[iLowest(NULL, 0, MODE_HIGH, HL_Period, 2)];

   double lc = ILC;
   if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;

   //買いポジションのエグジット
    OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET); 
    OOPL = OrderOpenPrice();
    if(   ((Close[1] < dir1 && Close[2] > dir2)  || ( OOPL - lc*Point >= Close[1] ) || Close[1] < HH2) 
            && ( 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(   ((Close[1] > dir1 && Close[2] < dir2) || ( OOPS + lc*Point <= Close[1] ) || Close[1] > LL2) 
          && ( Ticket_S != 0 && Ticket_S != -1 ))
    {    
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
      if( Exit_S ==1 ) {Ticket_S = 0;}
    }  

   //買いエントリー
   if( Close[1] > dir1 && Close[2] < dir2 
       && ( Close[1] > cla1 && Close[1] > clb1 )
       && ( 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( Close[1] < dir1 && Close[2] > dir2 
       && ( Close[1] < cla1 && Close[1] < clb1 )
       && ( 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);
  }

###

[FX]yasciiHA04a 実戦投入

昨日タイムフィルタの話をしましたが、そこで検証したシステム・・・平均足クロスシステムにクラウドフィルタとタイムフィルタを組み込んだ yasciiHA04a.ex4 を実戦投入してみました。

そのため、VPSサーバーが不調なので長らく止めていたリアル口座を自宅のPCで復活させました。

下はリアル口座(OANDA)のチャートです。

EURUSD 1時間足

チャートには一目均衡表と平均足と”平均足クロスのライン”(平均足の始値と終値を結んだ2本の線)を表示しています。

わかりにくいので該当部分を、平均足をローソク足に戻して表示しますと、

中央付近の、右向きの赤い⇒ (正確には⇒が乗っている陽線の始値)が買いエントリしたポイント。

雲を上越えしたところでエントリシグナルが発生したものと思います。EA はうまく動作していますね。

直前高値を超えたところでロスカットを手動で引き上げましたが、その後目標が見当たらないので、MetaTrader4 のトレーリングステップ機能を 35pips に設定しておいたところ、1.08757 でイクシットしてくれました。

結果 69.3pips のプラスとなりました。

デモ口座だと10万通貨なので普通 69300円になりますが、今回は久々のリアル口座のため肩慣らしに 1万通貨で挑戦したので 6930円にしかなりませんでした。

まあリアルマネーだけに 1/10 以上の重みはありますが・・・

ちなみに手動でイクシットしていなければ 1.880 付近で EA がイクシットしてくれたようです。

放置しておいたほうが少しだけよかったようですね。

雑談

え、「三角保ち合いの上離れの典型パターンなので EA なんかなくてももっと早めに仕掛けてもっと取れただろう」って?

それはそうですが、そうするにはチャートをずっと見ておかないといけません。

できれば”エントリもイクシットも”ですが、だめでもエントリだけでも EA にやらせるほうがラクなんです。

この場合、雲の存在も気になりますしね。

一般的に、三角保ち合いの上離れはEAにやらせるのはちょっとホネなんですよね。厳密でないのであれば通常のブレイクアウトシステムでもいいのですが。

3月からトレンディ?

ちなみに、この EA(トレンド相場が得意) で検証すると、EURUSD のペアは 3月初めよりジャンジャン黒字が出ます。

それまではトレンドのない相場でしたが、現在はトレンディになってきているということがわかりますね。

まあ、”1月と2月は様子見で3月から6月までは頑張る”という職業トレーダー(アングロサクソン系)が多いので当然かもしれません。

関連記事

[FX]タイムフィルター(4)

###

[FX]タイムフィルター(4)

タイムフィルターのさらなる検証です。

通貨ペアごとに最適な時間帯を調整してみると以下のとおりになります。

要するに、「タイムフィルター(2)」での検証を「タイムフィルター(3)」で得た最適時間帯で行ったものです。

使用する EA はおなじ yasciiHA04a です。表の数字の単位はドル。

2015/3/9-31 すべて1時間足

通貨ペア TFなし TF(共通) TF(最適化)
EU 4627 5891 6428
UJ 154 847 1392
EJ 792 2334 3335
AU 2220 3127 4677
AJ 1061 1375 2729
CJ -1895 -1444 102
FJ 745 1872 3510
EA -1273 -883 680
EG -205 1974 2734
GJ 544 -675 2684
NJ -1274 680 1011
NU -589 871 1399
UC -1158 -62 388
UF 3099 3466 3826
GU 3173 2408 4965

ということでマイナスはなくなりましたね。

ちょっと実働させてみますか。

関連記事

 

###

[FX]タイムフィルター(3)

前回、前々回と触れてきたタイムフィルターの続きです。

通貨ペアの顔ぶれによって最適な時間帯が実際どれほど違ってくるのか興味がありますね。

わからないことがあったら検証しましょう。データがあるのですぐにわかりますから。

タイムフィルターというのは in_time と out_time の間の時間帯でしかエントリしないというものです。

利益が最大となる in_time と out_time は以下の通りです。

2015/3/9-2015/3/31 1時間足

通貨ペア in_time out_time
EU 9 20
UJ 14 20
EJ 12 24
AU 9 21
AJ 9 20
CJ  0  1
FJ 12 20
EA 14 20
EG 11 21
GJ 12 21
NJ 14 20
NU 10 17
UC 9 20
UF 10 20
GU 14 20

表の時間はサーバー時間(夏時間で日本より 6時間遅れ)です。

*

各通貨ペアで微妙に違うものの、CJ(CADJPY) 以外はそんなには変わらないというところですね。

「どれも 10時~20時 にする」でもなんとかいけそうです。

ただし、上の結果は 「特殊な 3週間」での結果なので、検証時期、検証期間が変わるとまた変わってくると思います。

いやあ、タイムフィルター、なかなかすばらしいかも。

関連記事

###

[FX]タイムフィルター(2)

タイムフィルターのさらなる検証です。

他の通貨ペアも調べてみました。

本来は通貨ペアごとに時間帯を調整するべきでしょうが、まず最初にということで、すべての通貨ペアで同じにしてみます。

エントリをサーバー時間で10-22時に制限した結果が下です。

使用する EA はおなじ yasciiHA04 です。表の数字の単位はドル。

2015/3/9-31 すべて1時間足

通貨ペア TFなし TFあり 差
EU 4627 5891 1264
UJ 154 847 693
EJ 792 2334 1542
AU 2220 3127 907
AJ 1061 1375 314
CJ -1895 -1444 451
FJ 745 1872 1127
EA -1273 -883 390
EG -205 1974 2179
GJ 544 -675 -1219
NJ -1274 680 1954
NU -589 871 1460
UC -1158 -62 1096
UF 3099 3466 367
GU 3173 2408 -765

ということで、たいていの通貨ペアで成績は改善します。

改善の著しいものを赤字にしました。

*

欧米人が寝ている間はトレードしたらだめってことを表しているんでしょうね。

他の EA にも組み込んでみたいと思います。

yasciiHA04.ex4 はトレンディな相場に強い(というかノントレンディでは損失がふくらむ)ので、他の EA でもトレンディ相場に強いものでは同じ傾向であろうと思われます。

関連記事

###

[FX]タイムフィルター

「時の旅人システム」はデータ不足でもう少し復帰に時間がかかりそうですので、別のシステムを改良しましょう。

「時の旅人システム」を開発中、いろんなシステムで使えるフィルタを思いつきました。

「Heiken_Ashi_Real」というインディケーターを利用した EA 「yasciiHA04.ex4 」を以前紹介しましたが、夏時間導入後 EURUSD での成績が良好です。

EURUSD 1時間足 2015/3/9 – 2015/3/31 フィルタなし

EURUSD(ユーロドル)を取引するのは欧米人が9割以上と思われますので、彼らが目覚めて取引していると思われる、日本時間(夏時間)で午後4時から午前2時までにエントリ時間を制限してみると、重要でない取引がカットできるのではないでしょうか。

ということでそれ(タイムフィルタと呼びます)を組み込んでみました。

EURUSD 1時間足 2015/3/9 – 2015/3/31 タイムフィルタあり

取引回数は半分くらいに減ったのに勝率、プロフィットファクター、総損益がぐんとよくなりました。

資産曲線もなめらかになりましたね。

通貨ペアごとに時間帯を決める必要がありそうですが、それは常識で考えればわかりますよね。

関連記事

プログラムソース

//
// yasciiHA04a.mq4
//           Heiken_Ashi_Real(移動平均線クロス)を使用
//         通常平均足との組み合わせ 
//           with Time Filter

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

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

extern int Fast_period = 12 ;
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 FastHH1 = Low[iHighest(NULL, 0, MODE_HIGH, Fast_period, 1)];
   double FastLL1 = High[iLowest(NULL, 0, MODE_LOW, Fast_period, 1)];
   double margin = Ask - Bid ; 

   //買いポジションのエグジット
   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) ;

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

   double lc = ILC;
   if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;

   //買いポジションのエグジット
    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)

前回の記事「冬時間から夏時間への切り替わりの検証」の結果はミモフタもないものでしたが、夏時間に切り替わってからのデータを調べてみました。

まず、逆張りのデータです。

最初の週だけ、最初の2週分、最初の3週分の”逆張りすると儲かる時間帯”・・・正確には 10万通貨で300ドル以上の利益が出るサーバー時間 です。

夏時間最初1週 夏時間最初2週 夏時間最初3週
2015/3/9-15 2015/3/9-18 2015/3/9-28
EU 9,10 9,10,15,19 1,5,9
UJ 10,15 9,15 10,15
EJ 10,22 9,10,19,22 2,5,8,9,10,19
AU 7,9,12 7,9,12,15 9,12
AJ 9,12,23 3,9,12 0,3,9,10,12
CJ 11 なし 3,13
FJ 0,10,19,22 0,3,10,19 0,3,4,9,18,19,20
EA 3,5,10,19 1,3,5,10,17,19 1,2,3,5,10,11,17,19
EG 10,14,17 0,14,17 14,17,18,23
GJ 1,3,5,11,14,22 1,3,5,9,11,18,19 1,3,19,21,22
NJ 23 3,11,23 3,6,11,12,19,23
NU 7,9,11,16,23 3,7,9,11,20,23 9,11,15,16,20
UC 10,13,23 9,10,13 9,10,13
UF 10,22,23 9,10,19,23 0,1,5,9,10
GU 1,9,10,22 1,9,10 1,4,9,10,13,15,16,19,21

 

ようやく共通の時間帯がちらほら見えてきたな、という印象です。

共通に現れる時間帯に対しては実動させてもいいかもしれませんね。

次に順張りのデータを示します。

夏時間最初1週 夏時間最初2週 夏時間最初3週
2015/3/9-15 2015/3/9-18 2015/3/9-28
EU 5,6,11,12,13,16,17,18,20,21 5,6,11,12,13,17,18,20,21 3,11,12,13,18,21,22,23
UJ 3,18 3,18 3,18,22
EJ 11,12,13,16,17,20,21 7,12,13,16,17,20,21,23 12,13,16,18,20,21,23
AU 5,17,18 5,17,18 5,14,17,18,21,22
AJ 5,17 5,17 13,14,17,18
CJ 16,17 16,17 4,16,17
FJ 11,15,21,23 7,11,15,21,23 11,13,15,16,17,21
EA 9,11,12,13,15,20,23 9,13,15,20,23 4,7,9,13,15,18,23
EG 6,11,12,18,21 6,11,12,13,21 11,12,13,16,21
GJ 4,15,17,20 4,15,17 4,7,8,9,13,16,17
NJ 5,10,22 4,5,10,15,22, 4,7,10,22
NU 4,5,10,17 4,5,10 4,5,10,13,18,19,22
UC 3,12,16,17,18 5,17 3,12,14,17,21,22
UF 5,6,11,17,18,21 5,6,11,17,18,21 3,11,13,16,17,18,21,22
GU 11,14,16,17,20 11,14,16,17,20 12,14,17,20,22

 

こちらも共通の時間帯が多数見えてきますね。

うまくいきそうです。

ここで気づきましたが、「切り替えから 1週間・2週間・3週間」より「現在から 1週間前まで・2週間前まで・3週間前まで」の方が意味があるかもしれません。

関連記事

[FX]冬時間から夏時間への切り替わりの検証

###

[FX]冬時間から夏時間への切り替わりの検証

最近忙しくて、FX についてはデータをとるだけになっています。

データ取得は VPSサーバーが不安定でしたのでついに見限り、自宅のPC の仮の環境で現在稼働中です。

愛称「時の旅人システム」の運用に関して、順張りか逆張りかを決める時間帯データは最も重要なものです。

今月9日に行われたアメリカの冬時間から夏時間への切り替えの前後のデータをまとめてみました。

まずは逆張り用データ。

表の値は逆張りが有利なサーバー時間(冬時間で日本時間より7時間遅れ)。

冬時間全体 冬時間最終週 夏時間最初週
2014/12/8-2015/3/9 2015/3/2-8 2015/3/9-15
EU 3,9,14,15 9,14 9,10
UJ 2,3,15,17 なし 10,15
EJ 0,3,5,9,15,17 9,12 10,22
AU 3,9,10 3,6,15 7,9,12
AJ 2,8,16,17 16,18 9,12,23
CJ 3,17,21 16 11
FJ 0,2,5,8,11,17,19 12,14,19 0,10,19,22
EA 0,2,9,14,22 5,9,16,18 3,5,10,19
EG 11,14 9,14 10,14,17
GJ 3,5,8,17 4,9,12 1,3,5,11,14,22
NJ 14,17 4 23
NU 12,15,16 3,4 7,9,11,16,23
UC 13,15,23 15,17 10,13,23
UF 2,11,15,17,19 14 10,22,23
GU 10,12,16,18,20 なし 1,9,10,22

 

このようにほとんどの通貨ペアで、切り替え前後の関連性はほとんどなくなっています。

「一時間ずれるだけだろ」という希望的観測も粉砕されました。

順張りは省略しますが、やはり同じです。

要するに、夏時間に冬時間のデータで勝負してはいけないということですね。

関連記事

[FX]冬時間から夏時間への切り替わりの検証(2)

###

ふるさと納税4回め / 無洗米 大館市(2)

以前の記事「ふるさと納税4回め / 無洗米 大館市」で書いた無洗米。

なかなか送られてこないので、こりゃあ秋になってから新米が届くのかなと思っていたら、本日届きました。

ひょっとして道路の雪がやっと融けたのでしょうか。

大館市(秋田県)の「あきたこまち(無洗米)」10kg。

今食べているお米がなくなったらいただきま~す。

他のふるさと特産品

イチゴのさがほのかは私にとっては十分に甘いのですが、カミサンとムスメはもっと甘いのがいいと言い張ります。

柑橘類は結構あちこちに配ってしまい、もうあと数個になってしまいました。文旦はちょっと食べにくいですね。清美が一番好みですが、せとかもおいしいです。

デコポンは入っていませんでしたが、カミサンがこの前不知火を買ってきていたのでまあよしとしましょう(デコポンは熊本産の不知火)。

肉はまだ食べておりません。

あ、液晶モニタが来た!

関連記事

ふるさと納税4回め / 無洗米 大館市

###

ふるさと納税5回め / 牛肉 和木町(2)

以前の記事「ふるさと納税5回め / 牛肉 和木町」で書いた牛肉が届きました。

クレジットカードが使えないので、振り込み用紙を送ってくれました。振り込んで約 1週間。

山口県和木町の高森牛モモスライス800g ですが、送り主は岩国市の おかもと商店(有)さんからでした。

おかもと商店さんは おかもと牧場という牧場まで持っているお肉屋さんのようです。> 山口おかもと牧場

ネット販売もされています。このモモは 100g 540円くらいの赤身の肉ですね。牧場まで持って加工&直売なので普通の店ならもっと高いお肉でしょう。

きれいなお肉です。私は霜降り肉は下痢するので赤身しかほぼ受けつけません。

すき焼きでいただきましょうか。

和木町の役場のみなさん、おかもと商店さん、そして高森牛さん、みなさんありがとうございました。

> ふるさと納税ポータルサイト

関連記事

ふるさと納税5回め / 牛肉 和木町

###

[FX]「時の旅人」システム大改造

3/19 06:00:00 buy 1 eurgbp 0.72408 3/19 13:00:00 0.7176 -116343
3/19 07:00:00 buy 1 usdjpy 120.419 3/19 14:00:00 120.603 18400
3/19 07:00:00 sell 1 audusd 0.77349 3/19 08:00:00 0.77319 3616
3/19 07:00:00 sell 1 eurusd 1.07677 3/19 10:00:00 1.07863 -22409
3/19 09:00:00 sell 1 audusd 0.77291 3/19 10:00:00 0.77286 603
3/19 09:00:00 buy 1 gbpjpy 179.559 3/19 11:00:00 179.003 -55600
3/19 09:00:00 sell 1 eurusd 1.07722 3/19 11:00:00 1.07104 74547
3/19 11:00:00 buy 1 eurusd 1.07104 3/19 19:00:00 1.06205 -108694
3/19 11:00:00 buy 1 gbpjpy 179.022 3/19 12:00:00 179.069 4700
3/19 12:00:00 sell 1 eurusd 1.06572 3/19 13:00:00 1.06908 -40497
3/19 14:00:00 sell 1 gbpjpy 179.69 3/19 15:00:00 179.755 -6500
3/19 14:00:00 buy 1 gbpusd 1.48995 3/19 15:00:00 1.48952 -5189
3/19 15:00:00 buy 1 chfjpy 121.942 3/19 16:00:00 121.649 -29300
3/19 15:45:01 buy 1 usdjpy 120.88 3/20 00:01:00 120.756 -12400
3/19 16:00:00 buy 1 gbpusd 1.48531 3/19 18:00:00 1.47589 -113787
3/19 17:00:00 sell 1 audjpy 92.271 3/19 18:00:00 92.209 6200
3/19 17:00:00 sell 1 audusd 0.76394 3/19 19:00:01 0.76175 26478
3/19 17:00:00 sell 1 usdchf 0.99183 3/20 07:00:00 0.98936 30153
3/19 18:00:00 sell 1 usdjpy 120.791 3/19 19:00:00 120.909 -11800
3/19 19:00:00 sell 1 eurusd 1.06205 3/20 00:00:21 1.06599 -47592
3/19 20:00:00 sell 1 eurjpy 128.561 3/20 07:16:05 128.972 -41100
3/19 20:00:00 buy 1 eurusd 1.06333 3/19 22:00:00 1.06392 7135
3/19 21:00:01 buy 1 eurgbp 0.72243 3/19 22:00:00 0.72272 5162
3/19 23:00:00 buy 1 chfjpy 122.018 3/20 00:01:00 121.91 -10800
3/20 00:00:21 buy 1 eurusd 1.06599 3/20 07:15:56 1.06802 24511
3/20 03:00:00 sell 1 usdjpy 120.75 3/20 04:00:00 120.723 2700
3/20 03:00:00 buy 1 gbpjpy 178.23 3/20 04:00:00 178.177 -5300
3/20 04:15:00 sell 1 usdjpy 120.702 3/20 05:30:01 120.771 -6900
3/20 05:00:00 buy 1 eurusd 1.06945 3/20 07:15:53 1.068 -17508
3/20 05:00:00 sell 1 audjpy 92.667 3/20 06:00:00 92.722 -5500
3/20 06:00:04 buy 1 eurgbp 0.72368 3/20 07:16:02 0.72338 -5349
3/20 06:30:00 sell 1 usdjpy 120.707 3/20 06:45:01 120.741 -3400

前回報告した後の結果が上ですが、トータルでマイナス 461763円と大赤字。

やはり夏時間に切り替わったばかりでデータが不十分なのが致命的なようです。

なにかいい手は・・・

ちょっと考えるといい考えが!

プログラムを大幅修正

プログラムを修正してみました。

修正点は固定ロスカットを置いただけです。

修正版を本日お昼の 13時半(サーバー時間では 7時半ごろ)にアップして入れ替えました。

その後のデータです。

3/20 08:00:02 sell 1 gbpjpy 178.166 3/20 10:37:23 178.343 -17700
3/20 09:00:00 buy 1 gbpjpy 178.161 3/20 11:30:22 177.949 -21200
3/20 09:00:01 sell 1 eurjpy 128.985 3/20 11:00:00 128.911 7400
3/20 09:00:02 buy 1 usdcad 1.26769 3/20 11:00:00 1.26748 -2001
3/20 09:00:04 sell 1 eurusd 1.06873 3/20 14:41:29 1.07087 -25899
3/20 09:30:01 sell 1 usdjpy 120.675 3/20 10:00:00 120.814 -13900
3/20 10:15:01 buy 1 usdjpy 120.84 3/20 10:45:00 120.749 -9100
3/20 11:00:00 sell 1 usdchf 0.98935 3/20 12:00:00 0.98739 24004
3/20 11:00:00 buy 1 chfjpy 122.114 3/20 16:00:00 123.175 106100
3/20 11:00:00 buy 1 eurjpy 128.911 3/20 16:17:36 130.336 142500
3/20 11:45:00 buy 1 usdjpy 120.887 3/20 16:15:00 120.882 -500
3/20 13:00:00 buy 1 usdcad 1.26822 3/20 14:00:00 1.26899 7344
3/20 14:00:00 buy 1 eurusd 1.06929 3/20 16:17:36 1.07892 116331
3/20 16:00:00 sell 1 gbpusd 1.48226 3/20 16:08:55 1.48438 -25636

どうだ!こんどは 8時間ほどで 287743円のプラス。

エントリ時間が XX:00:0X になっていない 3つのデータは「時の旅人」以外のシステム。

「時の旅人」システムのみなら 311243円のプラスとさらに良好です。

まあ、大勝ち3発によるマグレの可能性もありますが・・・

このシステムのキモとなる”しかける時間帯のデータ”はそのままで、単に固定ロスカットを置いただけです。

大負けを抑制するのが目的ですが、勝ちも抑制してしまう可能性もあります。

もし偶然でなければこの修正は非常に効果的ですネ。

アイディア

1) これに HLBand トレーリングストップを入れたらさらによくなりそうな予感。^^

2)あと、サーバー時間(夏時間)が 11:00 – 19:00 のときのみにしぼったほうがいいような印象ですね。仕掛けてくるのはオーベイの人なんで。そうすれば毎朝データを取り直して昼までに修正すれば常に最新のデータで運用できそうです。

関連記事

[FX]web-keepers Windows VPS についてのトラブル(5) やはりトラブル多発

###

ふるさと納税3回め / イチゴ 玄海町 (2)

リカちゃんパッケージのさがほのかが玄海町からチルドで送られて来ました。

上のようなパッケージが4つ。

通販で 3000円くらいで売られているところもあるようです。寄付金は 5000円 でしたから大満足。

関連記事

ふるさと納税3回め / イチゴ 玄海町

###

[FX]簡易GMMAのススメ

GMMA についてはこちら> GMMAチャート(複合型移動平均線)

長期の移動平均線を6本、短期を6本組み合わせたチャートです。

長期が投資筋、短期が投機筋を表すとされています。

Guppy さんが発明しました。

*

見やすくていいのですが、12本いっぺんだと MetaTrader4 では表示できない(指標バッファが 8本分しかないため)のです。

GMMA(Guppy Multi Moving Average) では長期どうしの間隔や短期どうしの間隔が問題になるのですが、それには 2+2 本でことたります。

ということで、長期2本、短期2本で簡素化したのがこちら。

移動平均線のパラメーターはなんでもいいのですが、ここでは 5, 21, 62, 200 を採用しました。

  • 5 オレンジ
  • 21 赤
  • 62 水色
  • 200 青

です。

これでもトレンドやトレンドレスは十分にわかりますね。

鰯食いシグナル、トビウオシグナル、マッコウクジラシグナルなどもそれなりにわかります。

Guppy Multi Moving Average ではなく、Medaka Multi Moving Average(3MA) とでも名づけますか。

池乃めだかが発明したわけではないですが。

関連記事

FX最強チャート GMMAの真実 / 陳 満咲杜 (3)

###

[FX]web-keepers Windows VPS についてのトラブル(5) やはりトラブル多発

以前の記事「[FX]web-keepers Windows VPS についてのトラブル(4) あれトラブルが解消? 」からやはり VPS サーバーが落ちまくり。

とりあえず、デモ口座での EA テストの結果の続きです。

3/11 10:00:01 buy 1 gbpusd 1.50797 3/11 13:00:00 1.50604 -23454
3/11 16:00:00 buy 1 gbpusd 1.50474 3/11 16:53:06 1.50129 -41824
3/13 06:15:01 buy 1 usdjpy 121.464 3/13 11:15:00 121.355 -10900
3/13 07:00:08 buy 1 gbpusd 1.48705 3/13 08:00:07 1.48627 -9476
3/13 08:00:02 sell 1 gbpjpy 180.539 3/13 10:18:33 180.646 -10700
3/13 09:00:00 sell 1 eurusd 1.06001 3/13 11:13:02 1.06351 -42476
3/13 12:00:00 buy 1 gbpusd 1.48801 3/13 13:00:00 1.48531 -32798
3/13 12:00:00 buy 1 gbpjpy 180.65 3/13 12:10:49 180.46 -19000
3/13 12:00:00 sell 1 gbpjpy 180.637 3/13 16:05:04 179.568 106900
3/13 13:00:00 sell 1 gbpjpy 180.427 3/13 16:05:10 179.576 85100
3/13 14:30:02 buy 1 usdjpy 121.465 3/13 15:30:00 121.452 -1300
3/13 15:00:00 sell 1 eurjpy 128.392 3/13 16:05:05 128.367 2500
3/13 15:00:00 sell 1 eurusd 1.05674 3/13 16:05:30 1.05749 -9105
3/13 18:00:00 buy 1 gbpusd 1.47335 3/16 10:52:25 1.47741 49217
3/16 00:09:15 sell 1 gbpjpy 178.906 3/16 11:59:05 179.476 -57000
3/16 01:15:00 buy 1 usdjpy 121.425 3/16 02:15:15 121.335 -9000
3/16 02:30:03 buy 1 usdjpy 121.382 3/16 04:30:00 121.329 -5300
3/16 03:00:01 sell 1 eurjpy 127.189 3/16 10:00:00 127.655 -46600
3/16 05:00:00 buy 1 eurusd 1.05272 3/16 10:52:41 1.05337 7879
3/16 07:00:00 buy 1 gbpusd 1.47592 3/16 08:00:00 1.47518 -8976
3/16 08:30:05 sell 1 usdjpy 121.282 3/16 10:59:58 121.234 4800
3/16 10:00:01 buy 1 gbpusd 1.4777 3/16 10:53:24 1.47721 -5940
3/16 20:00:00 buy 1 eurjpy 128.729 3/17 00:01:00 128.213 -51600
3/17 02:00:00 sell 1 gbpjpy 179.901 3/17 03:33:35 180.064 -16300
3/17 03:00:01 buy 1 eurjpy 128.32 3/17 09:52:35 128.419 9900
3/17 10:00:00 buy 1 gbpusd 1.48368 3/17 10:09:58 1.48405 4487
3/17 10:30:00 sell 1 usdjpy 121.275 3/17 11:00:00 121.401 -12600
3/17 11:00:00 buy 1 usdchf 1.00421 3/17 12:00:06 1.00578 18943
3/17 11:00:00 buy 1 gbpjpy 179.99 3/17 12:00:00 179.467 -52300
3/17 11:00:00 buy 1 eurjpy 128.818 3/17 22:00:00 128.662 -15600
3/17 11:00:00 sell 1 eurusd 1.0611 3/17 19:00:00 1.06048 7520
3/17 11:00:01 buy 1 chfjpy 120.888 3/17 16:00:00 120.885 -300
3/17 12:00:00 buy 1 eurusd 1.0588 3/17 20:00:00 1.05955 9102
3/17 13:00:00 sell 1 usdcad 1.27601 3/17 14:00:07 1.27673 -6838
3/17 14:00:00 buy 1 gbpjpy 179.105 3/17 15:00:00 178.8 -30500
3/17 15:00:00 sell 1 usdjpy 121.214 3/17 18:45:00 121.292 -7800
3/17 16:00:00 sell 1 gbpusd 1.47616 3/17 18:00:00 1.47543 8854
3/17 17:00:00 buy 1 audjpy 92.619 3/17 18:00:00 92.597 -2200
3/17 18:00:00 sell 1 usdjpy 121.283 3/18 04:00:02 121.329 -4600
3/17 20:00:00 sell 1 eurusd 1.05956 3/18 04:00:08 1.06059 -12496
3/17 20:00:00 buy 1 eurusd 1.05958 3/18 07:00:03 1.06059 12255
3/17 21:00:00 buy 1 eurgbp 0.71821 3/18 07:00:08 0.71849 5015
3/17 21:00:00 buy 1 gbpjpy 179.121 3/18 11:02:29 178.88 -24100
3/17 22:15:00 buy 1 usdjpy 121.39 3/18 02:15:01 121.342 -4800
3/17 23:00:00 sell 1 chfjpy 120.547 3/18 00:00:33 120.634 -8700
3/18 01:00:00 buy 1 gbpjpy 178.953 3/18 02:00:00 178.934 -1900
3/18 03:00:00 buy 1 gbpjpy 178.93 3/18 04:00:01 179.11 18000
3/18 04:00:08 buy 1 eurusd 1.06059 3/18 08:00:07 1.06011 -5824
3/18 04:15:01 sell 1 usdjpy 121.287 3/18 04:30:07 121.314 -2700
3/18 05:00:00 sell 1 audjpy 92.45 3/18 18:00:00 92.423 2700
3/18 05:00:03 sell 1 audusd 0.76203 3/18 06:00:00 0.76253 -6066
3/18 06:45:00 buy 1 usdjpy 121.357 3/18 07:00:01 121.343 -1400
3/18 07:00:02 buy 1 audusd 0.76237 3/18 08:00:00 0.76213 -2912
3/18 08:45:00 buy 1 usdjpy 121.37 3/18 09:45:00 121.335 -3500
3/18 09:00:00 buy 1 audusd 0.76052 3/18 10:00:00 0.76138 10436
3/18 09:00:00 sell 1 eurusd 1.058 3/18 11:00:00 1.06127 -39675
3/18 10:00:00 sell 1 eurusd 1.05936 3/18 10:36:03 1.06072 -16494
3/18 10:00:08 sell 1 usdcad 1.27961 3/18 14:00:00 1.27939 2084
3/18 11:00:00 buy 1 eurjpy 128.763 3/18 22:00:00 129.626 86300
3/18 11:00:00 buy 1 eurusd 1.06127 3/18 14:00:00 1.06231 12600
3/18 11:00:01 buy 1 eurgbp 0.71927 3/18 13:00:00 0.72303 66873
3/18 11:45:01 sell 1 usdjpy 121.273 3/19 05:58:09 120.235 103800
3/18 14:00:00 buy 1 gbpjpy 177.815 3/18 15:00:00 177.316 -49900
3/18 16:00:00 sell 1 gbpusd 1.46382 3/18 18:00:00 1.46625 -29420
3/18 17:00:00 sell 1 usdchf 1.00114 3/18 19:00:00 0.99541 69613
3/18 17:00:02 sell 1 audusd 0.76308 3/18 19:00:00 0.76524 -26119
3/18 19:00:00 buy 1 eurusd 1.06423 3/19 05:57:11 1.07983 187543
3/18 20:00:00 buy 1 gbpjpy 177.735 3/19 05:57:01 179.213 147800
3/18 21:00:00 buy 1 eurgbp 0.7237 3/18 22:00:00 0.72278 -16499
3/18 22:00:00 sell 1 eurjpy 129.624 3/18 23:00:00 130.137 -51300
3/18 23:00:02 buy 1 chfjpy 122.701 3/19 00:07:05 122.742 4100
3/19 01:00:00 buy 1 gbpjpy 179.885 3/19 02:00:00 179.739 -14600

 

まだ試運転の「時の旅人」システムを含んだ結果で、 トータルは 191429円のプラス。

試運転の「時の旅人」は昨日からは絶好調(389075円のプラス)に見えますが、これはたまたまサーバーが止まっている最中にラッキーなほうに相場が動いたからのようです。

関連記事

[FX]web-keepers Windows VPS についてのトラブル(4) あれトラブルが解消?

###

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

時の旅人システム

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

「時の旅人システム」とは先週(前日から5日間)の値動きを順張りと逆張りの基準にして、一日の24個の時間帯のうちその時間帯が順張りをしたほうがいいのか逆張りをしたほうがいいのか過去のデータから割り出して、その確率によって買うか売るか様子見をするというシステムです。

いわゆる心理モデルです。

欧米の機関投資家のうちデイトレードをしている人が勤務時間帯の間にトレンドに乗って最後の1時間は利益確定に走る という傾向を逆手にとった(というかそれにチャッカリ相乗りする)システムです。

通常は過去3ヶ月間のデータで運用したいのですが、3月9日に冬時間から夏時間に移行したため、しかける時間帯が大幅に変わりました。

そのため、3/9 – 3/15 のたった1週間で得られたデータをもとにしているので、正確性は期待できません。

でもうまくいけばモウケモノですので、ということで とりあえず昨日昼から25時間走らせてみました。

3/17 10:00:00 buy 1 gbpusd 1.48368 3/17 10:09:58 1.48405 4487
3/17 11:00:00 sell 1 eurusd 1.0611 3/17 19:00:00 1.06048 7520
3/17 11:00:00 buy 1 gbpjpy 179.99 3/17 12:00:00 179.467 -52300
3/17 11:00:00 buy 1 eurjpy 128.818 3/17 22:00:00 128.662 -15600
3/17 11:00:00 buy 1 usdchf 1.00421 3/17 12:00:06 1.00578 18943
3/17 11:00:01 buy 1 chfjpy 120.888 3/17 16:00:00 120.885 -300
3/17 12:00:00 buy 1 eurusd 1.0588 3/17 20:00:00 1.05955 9102
3/17 13:00:00 sell 1 usdcad 1.27601 3/17 14:00:07 1.27673 -6838
3/17 14:00:00 buy 1 gbpjpy 179.105 3/17 15:00:00 178.8 -30500
3/17 15:00:00 sell 1 usdjpy 121.214 3/17 18:45:00 121.292 -7800
3/17 16:00:00 sell 1 gbpusd 1.47616 3/17 18:00:00 1.47543 8854
3/17 17:00:00 buy 1 audjpy 92.619 3/17 18:00:00 92.597 -2200
3/17 18:00:00 sell 1 usdjpy 121.283 3/18 04:00:02 121.329 -4600
3/17 20:00:00 sell 1 eurusd 1.05956 3/18 04:00:08 1.06059 -12496
3/17 20:00:00 buy 1 eurusd 1.05958 3/18 07:00:03 1.06059 12255
3/17 21:00:00 buy 1 gbpjpy 179.121 3/18 11:02:29 178.88 -24100
3/17 21:00:00 buy 1 eurgbp 0.71821 3/18 07:00:08 0.71849 5015
3/17 23:00:00 sell 1 chfjpy 120.547 3/18 00:00:33 120.634 -8700
3/18 01:00:00 buy 1 gbpjpy 178.953 3/18 02:00:00 178.934 -1900
3/18 03:00:00 buy 1 gbpjpy 178.93 3/18 04:00:01 179.11 18000
3/18 04:00:08 buy 1 eurusd 1.06059 3/18 08:00:07 1.06011 -5824
3/18 05:00:03 sell 1 audusd 0.76203 3/18 06:00:00 0.76253 -6066
3/18 07:00:02 buy 1 audusd 0.76237 3/18 08:00:00 0.76213 -2912
3/18 09:00:00 buy 1 audusd 0.76052 3/18 10:00:00 0.76138 10436
3/18 09:00:00 sell 1 eurusd 1.058 3/18 11:00:00 1.06127 -39675
3/18 10:00:00 sell 1 eurusd 1.05936 3/18 10:36:03 1.06072 -16494

結果は惨憺たるもので、143693円の赤字です。デモ口座なので全然ひびきませんが。

やはりもう少しデータをためる必要があります。

過去のデータでは 1ヶ月程度のデータでもかなり黒字になるのですが、夏時間や冬時間に切り替わった直後はデータが激変するので安定稼働にはやはり最低 1-2ヶ月おいたほうがいいでしょうね。

夏時間/冬時間

アメリカのサマータイムとともにサーバー時間も変わるので、「日本人が遅らされている」と言った方がいいでしょう。

そのためクロス円の通貨ペアでのデータの変動が大きいです。

上の結果からクロス円を除けば -13693円と大幅に赤字は減少します。

さらに eurusd(ユーロ/ドル)を除くと、31919円の黒字となってしまいます。

3/17 10:00:00 buy 1 gbpusd 1.48368 3/17 10:09:58 1.48405 4487
3/17 11:00:00 buy 1 usdchf 1.00421 3/17 12:00:06 1.00578 18943
3/17 13:00:00 sell 1 usdcad 1.27601 3/17 14:00:07 1.27673 -6838
3/17 16:00:00 sell 1 gbpusd 1.47616 3/17 18:00:00 1.47543 8854
3/17 21:00:00 buy 1 eurgbp 0.71821 3/18 07:00:08 0.71849 5015
3/18 05:00:03 sell 1 audusd 0.76203 3/18 06:00:00 0.76253 -6066
3/18 07:00:02 buy 1 audusd 0.76237 3/18 08:00:00 0.76213 -2912
3/18 09:00:00 buy 1 audusd 0.76052 3/18 10:00:00 0.76138 10436

とにかくもう少しデータを集めてみることにしましょう。

案外面白いことが見つかるかもしれません。

###

意外な県民所得

この前北陸新幹線の話題を扱ったTV番組で知りましたが、富山県は一人当たりの県民所得が47都道府県中 5位らしいです。

ランキング TOP10 は以下の通り。

  1. 東京
  2. 静岡
  3. 愛知
  4. 滋賀
  5. 富山
  6. 茨城
  7. 広島
  8. 栃木
  9. 神奈川
  10. 大阪

1位は東京、最下位は沖縄であることは全国民の周知の事実でしょうが・・・

2位が静岡県、4位がわが滋賀県というのは意外です。

まあ、滋賀県は唯一人口が増えている(他県からの流入が多い)県なのでそうかもしれません。

物価も非常に安いので、収入から生活費などを引いた可処分所得で比べてみたいところですね・・・可処分所得で比較したら東京が 1位から転げ落ちたりしないのだろうか?

あまり言いたくないけど東海大地震が起きたら、滋賀県が 1位になる可能性もありますね。

*

3位が愛知県なのはナットクですが・・・6位茨城県、8位栃木県に神奈川県(9位)が負けているのが面白いです。

横浜もたいしたことないなあ。

###

ふるさと納税6回目 / 柑橘類 室戸市(2)

「ふるさと納税6回目 / 柑橘類 室戸市 」で 10000円納税した室戸市より柑橘類の詰め合わせが本日届きました。

  • はるみ 6個
  • せとか 10個
  • 文旦 6個
  • 清見 12個
  • はっさく 6個

季節により内容は変わるそうです。

残念ながらデコポンはありませんでしたが、はるみは馴染みがないので結果オーライ。

どれも皮にキズがあるなど商品としては問題があるものとのことですが、味は問題がないそうです。

まだ食べておりませんが、楽しみです。

清見

温州みかんとトロビダを掛け合わせたもの。

はるみ

清見とポンカンを掛け合わせたもの。

せとか

清見とアンコールを掛けたものにマーコットを掛け合わせたもの。

文旦(ザボン、ボンタン)

グレープフルーツ、はっさく、夏蜜柑などの祖先とされる、昔からある柑橘類。

はっさく

おなじみの日本原産の柑橘類。

###

[FX] HL Band(High Low Band) について(2)

以前の記事「HL Band(High Low Band) について 」で書きましたが、HL band(期間中の高値と安値との幅)の実装にはいろいろあります。

VQ の動向に合わせて売買を繰り返す自作の EA「yasciiVQ01.ex4」に組み込んで実験してみました。

今回は HL バンドは利益確定&損切りに使います。

オリジナル 2014/1/1 – 2015/1/1 ドル円 1時間足

HL band type A 付き 2014/1/1 – 2015/1/1 ドル円 1時間足

HL band type B 付き 2014/1/1 – 2015/1/1 ドル円 1時間足

結果

type A の HLバンドを つけると成績はオリジナルより悪化しますが、type B では改善します。

つまり、HL band トレーリングストップをつけてウンヌンという話は、HL band の実装によって変わってきます。

HL band の実装のしかたは前回ご説明しました。

今回の type A は

double HH2 = Low[iHighest(NULL, 0, MODE_CLOSE, N, 2)];

double LL2 = High[iLowest(NULL, 0, MODE_CLOSE, N, 2)];

type B は

double HH2 = Low[iHighest(NULL, 0, MODE_HIGH, N, 2)];

double LL2 = High[iLowest(NULL, 0, MODE_LOW, N, 2)];

を使用しています。

type A を安易に使いがちですが、type B のほうがギリギリのところまで伸ばせます。ただし臆病で、早めに勝負を降りてしまいがちです。

今回の EA はトレードを手仕舞いしてもすぐにエントリ条件が満たされると再エントリしてくれるので、これでもいいのです。

一度降りると次になかなか乗ってくれないタイプの EA につける場合は type B より type A のほうがよかったりする場合があるでしょうね。

プログラムソース

//
// yasciiVQ04c.mq4
//           VQ_bars 使用
//           HLBand(LHH)

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

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

extern double ILC = 10.0 ;

extern int       HL_Period=14;

// VQ_bars 用
extern   int      Length=6;
extern   int      Method=3;
extern   int      Smoothing=1;
extern   int      Filter=1;
extern   bool     Steady =false;

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(){

    if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

   double dir1 = iCustom(NULL, 0, "Downloads\\VQ_bars",Length,Method,Smoothing,Filter,Steady,4,1);
   double dir2 = iCustom(NULL, 0, "Downloads\\VQ_bars",Length,Method,Smoothing,Filter,Steady,4,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 HH2 = Low[iHighest(NULL, 0, MODE_HIGH, HL_Period, 2)];
    double LL2 = High[iLowest(NULL, 0, MODE_LOW, HL_Period, 2)];

   double lc = ILC;
   if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;

   //買いポジションのエグジット
    OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);
    OOPL = OrderOpenPrice();
    if(    ((dir1==-1 && dir2 ==1) || ( OOPL - lc*Point >= Close[1] ) || Close[1] < HH2)
            && ( 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(    ((dir1==1 && dir2 ==-1)||( OOPS + lc*Point <= Close[1] ) || Close[1] > LL2) 
          && ( Ticket_S != 0 && Ticket_S != -1 ))
    {   
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
      if( Exit_S ==1 ) {Ticket_S = 0;}
    } 

   //買いエントリー
   if( (dir1==1 && dir2 ==-1)
       && (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( (dir1==-1 && dir2 ==1)
       && (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,Blue);   
    }

   return(0);
  }

###

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

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

本当に有効なのでしょうか。

ということで雲の反転の有無で比較してみました。

雲の反転を無視 ドル円 1時間足 2014/1/1 – 2015/1/1

雲の反転でエントリするか決める ドル円 1時間足 2014/1/1 – 2015/1/1

ということで、プロフィットファクター、勝率のみならず売買回数も下がり、その結果総損益も大幅に低下。

最大負けも増えているのに、最大勝ちは減っている・・・

ボコボコですがな。

最大ドローダウンが若干下がっているくらいですね。

他の通貨も少しやってみましたが、雲の状態は気にしないでもよさそうです。

一目均衡表の冬

2015/1/1 – 2015/3/12 でテストしてみると、雲の反転を無視してもどの通貨も利益がでないようです。

去年もそうでしたが、春がくるまで一目均衡表は封印したほうがよさそうですよ。

プログラムソース(雲の反転もエントリ条件に含む)

//
// yasciiIchimoku01a
//           一目均衡表 雲も好転、逆転
//   

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

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

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(){

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

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

###

[FX]web-keepers Windows VPS についてのトラブル(4) あれトラブルが解消?

3/6 19:45:02 buy 1 usdjpy 120.968 3/6 22:15:00 120.742 -22600
3/9 00:05:06 sell 1 gbpjpy 181.685 3/9 16:00:00 182.649 -96400
3/9 03:00:01 buy 1 usdjpy 120.747 3/9 03:15:01 120.655 -9200
3/9 04:00:00 sell 1 gbpjpy 181.866 3/9 05:00:00 181.803 6300
3/9 05:45:01 buy 1 usdjpy 120.881 3/9 11:15:00 120.83 -5100
3/9 09:01:00 sell 1 gbpjpy 182.351 3/9 10:02:01 182.309 4200
3/9 10:00:00 buy 1 gbpusd 1.50755 3/9 13:00:00 1.51101 41784
3/9 11:00:00 sell 1 gbpjpy 182.121 3/9 11:14:56 182.328 -20700
3/9 12:15:00 sell 1 usdjpy 120.743 3/9 12:45:00 120.848 -10500
3/9 14:00:00 sell 1 gbpjpy 182.667 3/9 16:00:00 182.658 900
3/9 16:00:00 buy 1 gbpusd 1.51062 3/9 17:00:00 1.51028 -4112
3/9 17:30:00 buy 1 usdjpy 120.969 3/10 00:15:00 121.18 21100
3/9 20:00:00 buy 1 gbpusd 1.51097 3/9 21:00:00 1.51198 12253
3/9 20:00:00 buy 1 gbpjpy 183.409 3/10 05:13:40 183.681 27200
3/10 00:01:00 sell 1 eurjpy 131.454 3/10 02:32:01 131.735 -28100
3/10 02:00:02 sell 1 eurusd 1.08476 3/10 05:45:12 1.08282 23599
3/10 04:30:00 buy 1 usdjpy 121.558 3/10 05:44:00 121.654 9600
3/10 07:00:00 buy 1 gbpusd 1.5085 3/10 08:00:00 1.50808 -5110
3/10 12:00:00 buy 1 gbpusd 1.50439 3/10 17:00:00 1.50897 55420
3/10 12:00:00 sell 1 eurjpy 131.116 3/11 04:00:00 129.765 135100
3/10 18:00:00 buy 1 gbpusd 1.50821 3/10 19:00:00 1.5085 3515
3/10 20:00:00 buy 1 gbpusd 1.50949 3/11 08:00:45 1.50734 -26108
3/10 22:00:00 sell 1 gbpjpy 182.481 3/11 04:00:00 182.792 -31100
3/11 04:00:00 buy 1 gbpjpy 182.79 3/11 07:50:19 182.984 19400

珍しく今回はサーバーが一度も落ちませんでした。

-96400 の結構イタイ負けがあったものの合計 101341円のプラス。

デモ口座ですけどね。

仕掛け時間が○時00分00秒になっているのはすべて「前週の平均値と順張り&逆張り(愛称:時の旅人)」のEA です。

冬時間から夏時間に切り替わった 3/9 以降もパラメーターを変えずに試しに複数の通貨ペアで起動していますが、これらが結構いい感じに働いていますね。

意外です。

*

昨年の冬時間と夏時間との切り替えの前後それぞれ1週間を調べてみたらパラメーターはかなり変わっていたので、今年もあと1週間経ったら調べてみるつもりです。

それにしても夏時間と冬時間の切り替えはやっかいです。

とはいえ、サーバー時刻もアメリカ側に合わせて変わるので、日本が遅れたり早まったりするというのが金融的には正しいのかもしれません。

時間毎に順張りしたり逆張りしているのは主にアメリカの鬼(+ロンドンの幽鬼)どもだということを考えると、時の旅人のパラメーターをそんなに変えなくてもいいのかもしれませんネ。

###

ふるさと納税6回目 / 柑橘類 室戸市

チョーシにのった私はさらに続けて納税(寄付)することにしました。

今回はみかん。

普通のミカンではおもしろくないし、ちょっと変わった種類も食べてみたい。

いろいろ探すと高知県の室戸市に

土佐文旦やデコポンなど定番柑橘類のほかに小夏や清美オレンジなど変わった品種をお送りします。

訳あり商品となっておりますので、若干皮などにキズがあります。味は問題ありません。

というセットがあるのに着目。

デコポンでいいのですが、そろそろ品薄です。

デコポンがなくても他の旬のものがくるかもしれません。

清美オレンジは知っていますが、もっと変わったものも入っていそうな予感。

クレジットカードが使えましたので、申し込みは 5分もかかりませんでした。

さて、実物は?

> 高知県 室戸市

> ふるさとチョイス(ふるさと納税ポータルサイト)

関連記事

###

[FX]デイリーピボットへの回帰

FX では前日のピボット値を目安にすることがよく行われています。

上下どちらから始まっても一日のうちに前日のピボット値を一度通過するという傾向があるのです。

  • 買い 前日のピボット値より当日が安く始まった場合
  • 売り 前日のピボット値より当日が高く始まった場合
  • 決済 ピボット値に達した場合(利確) または 固定ロスカットにかかったとき(損切り) あるいは 一日(サーバー時間)の終わりの1時間前に達したとき

 

売買は一日一回までとします。0時(サーバー時間・・・日本では夏時間で 6AM)に仕掛けることになりますね。

昨年の 15分足、30分足のデータが取得しにくかったので、今年のデータで検証しました。

結構多くの通貨ペアで利益がでますね。意外なことにクロス円がほとんどです。

AUDJPY、GBPJPY などが特にいいようです。

GBPJPY はじゃじゃ馬ですが、AUDJPY は理性のある(?)動きをするので私は好きです。

AUDJPY 30分足 2015/1/1 – 2015/3/9

ロスカットは 70pips にしています。

プロフィットファクター 1.94、勝率 73.91% は意外にいいですね。

総損益は元金の 5割というのはおよそ 2ヶ月の期間にしてはとても良好ですね。

最大ドローダウンは高いです。

EURJPY 30分足 2015/1/1 – 2015/3/9

EURJPY のほうがよかったです。

ロスカットは 60pips にしています。

プロフィットファクター 2.32、勝率 73.91% はいいですね。

総損益は元金の 8割ですからおよそ 2ヶ月の期間にしてはとても良好ですね。

最大ドローダウンは 13% とまだ少し高いです。資金1万ドルで10万通貨単位の結果ですから、ドローダウンをもっと下げたければ資金を増やすかロットを減らしてください。

プログラムソース

//
// yasciiDaypivot01.mq4 DailyPivot 15min

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

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

//---- input parameters

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

int OS1 ;
int OS2 ;
double   OOPL;
double   OOPS;

extern double ILC = 40.0 ; 
int once_day = 0;

int start()
  {

   if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

   double lc = ILC;
   if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;

   double yestdy_pivot = ( iClose(NULL, 1440, 1) + iHigh(NULL, 1440, 1) + iLow(NULL, 1440, 1)) / 3.0 ;

      if (Hour() ==0 && Minute() ==0){
         once_day = 0;
      }

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
   OOPL = OrderOpenPrice();
   if(  ( Bid > yestdy_pivot || Bid < OOPL -lc * Point || Hour() ==23 )   
       && ( Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Blue);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   //売りポジションのエグジット

   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   OOPS = OrderOpenPrice();
   if(   ( Ask < yestdy_pivot || Ask > OOPS + lc * Point || Hour() ==23 )  
       && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Red);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if(  Close[1] < yestdy_pivot && once_day == 0
       && ( 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,Blue); 
      once_day = 1;
    }

   //売りエントリー
    if(  Close[1] > yestdy_pivot && once_day == 0
       && ( 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); 
      once_day =1 ;
    } 

   return(0);
  }

###

[FX]ボリ平ロンドンコーリング検証

前回の記事「[FX]ロブ・ブッカーのNY Box 検証」でもちょっと書きましたが、ボリ平さん(女性です)のロンドン コーリングという手法も検証してみました。

手法自体は ロブ・ブッカーのNY Box とそっくりです。

> ロンドンコーリング手法、ハイロウズOCO手法を使って、相場にワナを仕掛けよう!

結果は、以下の通り。

ドル円 15分足 2014/1/1-2015/1/1

最初の 1/4 くらいの連敗がイタいですね。

後半3/4はなかなかいいです。

やすきー改良ロンドンコーリング

ちょっと改良してみました。

変更点は、ロンドン時間を東京時間がかぶらないように短縮(冬時間で日本の 17-21時)し、利食い 33pips、損切り 50pips にしたところ。

勝率(63.95⇒71.14 %)とプロフィットファクター(1.23⇒1.50)の両方を高めることに成功。

総取引数は半分以下に減っているのに総損益はむしろ大幅にアップしています。

プログラムソース(ボリ平ロンドンコーリング)

//
// yasciiNYBox02.mq4 ボリ平 ロンドンコーリング 15分足推奨

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

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

//---- input parameters

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

int OS1 ;
int OS2 ;
double   OOPL;
double   OOPS;

extern double ILC = 15.0 ; 
extern double ITP = 15.0 ; 

double NYB_high = 1000.0 ;
double NYB_low = 0.0 ;

int start()
  {

   if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

   double lc = ILC;
   if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;
   double tp = ITP;
   if(( Digits ==3 ) ||(Digits ==5)) tp = tp*10.0 ;

   if (Hour() == 14 && Minute() == 0)
   {
    NYB_high = iHigh(NULL, 60, iHighest(NULL, 60, MODE_HIGH, 6, 1));
    NYB_low = iLow(NULL, 60, iLowest(NULL, 60, MODE_LOW, 6, 1));   
   }

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
   OOPL = OrderOpenPrice();
   if(  ( Bid < NYB_high - lc*Point || Bid > NYB_high + tp*Point)   
       && ( Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Blue);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   //売りポジションのエグジット

   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   OOPS = OrderOpenPrice();
   if(   ( Ask > NYB_low + lc*Point || Ask < NYB_low - tp*Point)  
       && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Red);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if(  Close[2] <= NYB_high && Close[1] > NYB_high && Hour() >= 14 && Hour() < 22 
       && ( 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,Blue); 
    }

   //売りエントリー
    if(  Close[2] >= NYB_low && Close[1] < NYB_low && Hour() >= 14 && Hour() < 22
       && ( 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);
  }

###

[FX]ロブ・ブッカーのNY Box 検証

下の本に推奨されている NY Box (ニューヨークボックス)というトレード方法についての検証です。

超カンタン アメリカ最強のFX理論 超カンタン アメリカ最強のFX理論

ロブ・ブッカー&ブラッドリー・フリード

扶桑社 2009-12-19

売り上げランキング : 105661

Amazonで詳しく見る

by G-Tools

NY Box とはアメリカの鬼どもが寝静まっている日本時間で午後2~9時(夏時間は午後1~8時)の相場の上限、下限をブレイクアウトの判断に使うものです。

ボリ平さんのロンドンコーリングと似ていますが、ロンドン市場の始まる前の時間帯も含んでいるのが大きな相違点。

  • 買いエントリ 日本時間で午後2~9時(冬)の最高値を午後10時以降に上抜ければ買い
  • 売りエントリ 日本時間で午後2~9時(冬)の最安値を午後10時以降に下抜ければ売り
  • 決済  20pips の利益もしくは 30pips の損切り

2014/1/1-2015/1/1 ドル円 15分足

ロブさんは勝率重視のために ロスカット 30pips に対して 利益 20pips にしています。

せっかくのブレイクアウトだし勝率が下がってもいいのでロスカットより利益を大きくしたいなと思う人は最適化してみてください。

次は ロスカット 12pips、利益 70pips にした場合です(最適解ではないです)。

いずれにしろ最大ドローダウンが大きすぎるようですネ。

プログラムソース

//
// yasciiNYBox01.mq4 ロブ・ブッカーのNY Box 15分足推奨

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

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

//---- input parameters

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

int OS1 ;
int OS2 ;
double   OOPL;
double   OOPS;

extern double ILC = 12.0 ; 
extern double ITP = 32.0 ; 

double NYB_high = 1000.0 ;
double NYB_low = 0.0 ;

int start()
  {

   if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

   double lc = ILC;
   if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;
   double tp = ITP;
   if(( Digits ==3 ) ||(Digits ==5)) tp = tp*10.0 ;

   if (Hour() == 14 && Minute() == 0)
   {
      NYB_high = High[iHighest(NULL, 60, MODE_HIGH, 7, 1)];
      NYB_low = Low[iLowest(NULL, 60, MODE_LOW, 7, 1)];       
   }

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
   OOPL = OrderOpenPrice();
   if(  ( Bid < NYB_high - lc*Point || Bid > NYB_high + tp*Point)   
       && ( Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Blue);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   //売りポジションのエグジット

   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   OOPS = OrderOpenPrice();
   if(   ( Ask > NYB_low + lc*Point || Ask < NYB_low - tp*Point)  
       && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Red);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if(  Close[2] <= NYB_high && Close[1] > NYB_high && Hour() >= 14 && Hour() < 22 
       && ( 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,Blue); 
    }

   //売りエントリー
    if(  Close[2] >= NYB_low && Close[1] < NYB_low && Hour() >= 14 && Hour() < 22
       && ( 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);
  } 
//終わり

###

[FX]時間帯理論 米国時間の逆張りタイム

前回の記事「東大院生が考えたスマートフォンFX / 田畑 昇人 」で紹介した時間帯理論ですが、欧州時間についてはドルからみ以外の通貨ではほぼ成り立つという結果でした。

今度は米国(ニューヨーク)時間の逆張りタイムの検証です。

冬時間と夏時間の違いをみてみたいと思ったので、検証期間を分けてみました。夏時間は 2014/3/9-2014/11/2 、冬時間は 2014/11/2-2015/3/8 です。

冬時間 夏時間
EURUSD -1898 25
USDJPY -4835 -456
EURJPY 2933 -1248
AUDUSD -45 497
AUDJPY 2555 125
CADJPY -2191 -824
CHFJPY 8211 -104
EURAUD 5428 361
EURGPB 1649 -2046
GBPJPY 4841 508
NZDJPY 3291 -1057
NZDUSD -1561 2327
USDCAD -3676 -592
USDCHF 4009 -565
GBPUSD 2861 935

 

ニューヨーク時間(毎日22-29時・・・冬時間の場合)のうち、25-29時は 22-25時と逆のトレンドにしかけた結果が上の表です。

AUDJPY、EURAUD、GPBJPY、GBPUSD などが夏時間、冬時間の両者で利益が出ています。GBPUSD 以外は欧州、豪州、日本のペアですね。

アメリカの鬼どもは EURUSD、USDJPY では しかけてこないのですかね。

ちょっと気になりますのでつづけて検証しました。

ニューヨーク時間(毎日22-29時・・・冬時間の場合)のうち、28-29時は 23-28時と逆のトレンドにしかけた結果が下の表です。22時台は指標の発表があるのではずしました。

冬時間 夏時間
EURUSD -636 520
USDJPY -544 -486
EURJPY 158 -1089
AUDUSD 568 -905
AUDJPY 1636 -1067
CADJPY 1288 -619
CHFJPY -1203 -340
EURAUD 2083 1678
EURGPB 1153 155
GBPJPY 0 -1136
NZDJPY 2434 -1747
NZDUSD -56 -1003
USDCAD 2455 1972
USDCHF 158 245
GBPUSD -1681 799

AUDJPY、GPBJPY、GBPUSD がはずれ、EURAUD は残留。EURGPB、USDCAD が新たに”代表いり”しました。

アメリカの鬼どもはお得意のはずの EURUSD、USDJPY では しかけてこないということですね。

少し意外です。

プログラムソース

//
// yasciiDaily03c.mq4 1時間足で動作 NY市場の逆張り

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

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

//---- input parameters

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

int OS1 ;
int OS2 ;
double   OOPL;
double   OOPS;

extern int intime = 3 ;
int outtime ;

int start()
  {

   if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
   OOPL = OrderOpenPrice();
   if(  Hour() == 22    
       && ( Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Blue);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   //売りポジションのエグジット

   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   OOPS = OrderOpenPrice();
   if(   Hour() == 22  
       && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Red);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if(  Hour() == 18 && iMA(NULL, 60, 3, 0, 0, PRICE_CLOSE, 1) > Close[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,Blue); 
    }

   //売りエントリー
    if(  Hour() == 18 && iMA(NULL, 60, 3, 0, 0, PRICE_CLOSE, 1) < Close[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);
  }

###

[FX]時間帯理論 欧州時間の逆張りタイム

前回の記事「東大院生が考えたスマートフォンFX / 田畑 昇人 」で紹介した時間帯理論ですが、東京時間については逆が部分的に成り立つというサンザンな結果でした。

今度は欧州(ロンドン)時間の逆張りタイムの検証です。

冬時間と夏時間の違いをみてみたいと思ったので、検証期間を分けてみました。夏時間は 2014/3/9-2014/11/2 、冬時間は 2014/11/2-2015/3/8 です。

冬時間 夏時間
EURUSD 1821 -848
USDJPY 228 -124
EURJPY 2528 303
AUDUSD -1588 -386
AUDJPY 445 294
CADJPY 2839 -1119
CHFJPY 568 -184
EURAUD 770 678
EURGPB 39 -599
GBPJPY 2476 106
NZDJPY 2623 720
NZDUSD -2355 1638
USDCAD -1588 157
USDCHF -175 -1435
GBPUSD -1303 -1750

ロンドン時間(毎日17-22時・・・冬時間の場合)のうち、21-22時は 17-21時と逆のトレンドにしかけた結果が上の表です。

EURJPY、AUDJPY、EURAUD、GPBJPY、NZDJPY などが夏時間、冬時間の両者で利益が出ています。欧州、豪州、日本のペアですね。

この時間帯はアメリカの鬼どもはベッドの中なので当然な結果でしょうか。

ドルストレートの通貨には全く適用できないことに注意すれば、ロンドン時間においては時間帯理論は一応成立しそうです。

つづけて他も検証しましょう。

プログラムソース

//
// yasciiDaily03a.mq4 1時間足で動作 ロンドン市場の逆張り

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

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

//---- input parameters

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

int OS1 ;
int OS2 ;
double   OOPL;
double   OOPS;

extern int intime = 3 ;
int outtime ;

int start()
  {

   if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
   OOPL = OrderOpenPrice();
   if(  Hour() == 15    
       && ( Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Blue);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   //売りポジションのエグジット

   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   OOPS = OrderOpenPrice();
   if(   Hour() == 15  
       && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Red);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if(  Hour() == 14 && iMA(NULL, 60, 4, 0, 0, PRICE_CLOSE, 1) > Close[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,Blue); 
    }

   //売りエントリー
    if(  Hour() == 14 && iMA(NULL, 60, 4, 0, 0, PRICE_CLOSE, 1) < Close[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);
  }

###

[FX]時間帯理論 日本時間の逆張りタイム

前回の記事「東大院生が考えたスマートフォンFX / 田畑 昇人 」で紹介した時間帯理論ですが、日本時間の逆張りタイムの検証をしました。

冬時間と夏時間の違いをみてみたいと思ったので、検証期間を分けてみました。

まず、次の条件で

  1. 冬時間 2014/11/2-2015/3/8
  2. 日本時間(毎日9-15時)のうち、14-15時は 9-14時と逆のトレンドにしかける

結果はボロボロで、すべての通貨ペアで赤字。

ということは、

  1. 冬時間 2014/11/2-2015/3/8
  2. 日本時間(毎日9-15時)のうち、14-15時は 9-14時と同じトレンドにしかける

とすると利益が出るのでは、と思いやってみると

USDJPY 294
EURJPY 308
AUDJPY 745
CADJPY 1184
GBPJPY 1299
NZDJPY -117

クロス円では NZDJPY 以外で利益がでました。プログラムソースを最後に載せます。

クロス円でない通貨ペアは赤字のまま。スプレッド分も稼げないということですね。

なお、夏時間 2014/3/9-2014/11/2 も続けて検証しましたが、逆張り、順張りともに全滅に近かったです。

つづけて他も検証しましょう。

プログラムソース

//
// yasciiDaily03.mq4 1時間足で動作 東京市場の最後の時間は順張り 冬時間

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

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

//---- input parameters

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

int OS1 ;
int OS2 ;
double   OOPL;
double   OOPS;

extern int intime = 3 ;
int outtime ;

int start()
  {

   if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

   //買いポジションのエグジット
   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
   OOPL = OrderOpenPrice();
   if(  Hour() == 8    
       && ( Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Blue);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   //売りポジションのエグジット

   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   OOPS = OrderOpenPrice();
   if(   Hour() == 8  
       && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Red);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if(  Hour() == 7 && iMA(NULL, 60, 5, 0, 0, PRICE_CLOSE, 1) > iMA(NULL, 60, 5, 0, 0, PRICE_CLOSE, 2)
       && ( 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,Blue); 
    }

   //売りエントリー
    if(  Hour() == 7 && iMA(NULL, 60, 5, 0, 0, PRICE_CLOSE, 1) < iMA(NULL, 60, 5, 0, 0, PRICE_CLOSE, 2)
       && ( 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);
  }

 

 

###

[FX]前週の平均値と順張り&逆張り EA化(7) サマータイム

以前の記事「前週の平均値と順張り&逆張り EA化(4) GBPJPY版のみ始動 」で、ぼちぼちリアル口座で動かしますと書いたのですが、来週から米国がサマータイムに変更になるので早速作り直さなければいけないと気づき、結局動かしていません。

アメリカの鬼畜ども(^^)が1時間早く仕掛けてくるので当然ずれてくるわけですね。

鬼畜どもが好きな通貨ペアとそうでないペア、鬼畜どもが目を覚ましている時間帯と 寝ているか酒をかっくらっている時間帯と、いろいろな要素で順張りタイムと逆張りタイムが変わってくるわけでしょう。

バックテストがたいへんです。

*

下は前回以降のデモ口座での結果です。

3/5 03:00:00 buy 1 gbpjpy 182.791 3/5 06:25:00 182.796 500
3/5 12:00:00 sell 1 gbpjpy 182.827 3/5 14:57:06 183.218 -39100
3/5 12:00:00 buy 1 gbpjpy 182.838 3/5 14:57:09 183.21 37200
3/5 14:00:00 sell 1 gbpjpy 183.147 3/5 15:16:55 183.688 -54100
3/5 16:00:00 sell 1 gbpusd 1.5228 3/6 11:37:00 1.51948 39879
3/5 19:00:00 sell 1 eurjpy 132.308 3/5 22:00:00 132.503 -19500
3/5 20:00:00 buy 1 gbpusd 1.52286 3/5 21:00:00 1.52297 1322
3/5 22:00:00 buy 1 gbpjpy 183.129 3/6 02:54:15 182.928 -20100
3/5 23:00:00 sell 1 gbpjpy 182.998 3/6 00:01:02 183.126 -12800
3/6 03:00:00 sell 1 gbpjpy 182.938 3/6 11:23:42 182.656 28200
3/6 03:00:01 sell 1 eurjpy 132.31 3/6 10:00:00 132.423 -11300
3/6 03:00:01 sell 1 usdjpy 120.062 3/6 09:15:03 120.126 -6400
3/6 04:00:00 sell 1 gbpjpy 182.926 3/6 05:00:02 182.93 -400
3/6 10:00:00 buy 1 gbpusd 1.5236 3/6 11:00:00 1.52136 -26899
3/6 12:00:00 sell 1 gbpjpy 182.465 3/6 14:13:57 182.175 29000
3/6 12:00:00 buy 1 gbpusd 1.51999 3/6 14:13:55 1.51806 -23159
3/6 12:00:00 sell 1 eurjpy 131.658 3/6 14:14:02 131.358 30000
3/6 14:00:00 sell 1 gbpjpy 182.186 3/6 14:14:00 182.184 200

デモ口座は相変わらず、web-keepers の VPS で動かしているのでサーバー落ちが頻繁。

決済が普通は 1時間後(手動ですればそれ未満)、長くて 2時間後の EA が多いのですが、それ以上かかっているところはサーバー落ちのためです。

落ちたときはサーバーを再起動して適当に決済しているので正確な結果ではありません。

そのためか今回は珍しく赤字になっています。

自宅サーバーは夏時間導入以降にたてることにします。

###

ふるさと納税5回め / 牛肉 和木町

以前の記事「ふるさと納税4回め / 無洗米 大館市」でエツにいった私はさらに続けて納税(寄付)することにしました。

いよいよ牛肉!

私はアブラの多い霜降りを食べるとすぐ下痢をするので、赤身でないと。

10000円の寄付でいいでしょう。

かの本に書かれていた、美祢市の秋吉台高原牛カタまたはモモ(1kg)はすでに品切れ。

がっかりしましたが、同じ山口県の和木町というところが、高森牛モモスライス800g というのを送ってくれます。

これにしました。

残念ながらクレジットカードが使えないので、振り込み用紙を送ってくれるとのこと。

ああ、楽しみ。

> ふるさと納税ポータルサイト

###

[FX]前週の平均値と順張り&逆張り EA化(6)

各通貨の順張りバージョンを全部作りました。

過去 3ヶ月の結果が最もよくなるように最適化しています。

スイスショックの影響のある スイスフランがらみのものは除いて、なかなか有望なものは次の 6ペア。逆張りとは微妙に異なります。

2014/12/1 – 2015/2/28 の 3ヶ月の総損益(ドル)を示します。 元金は 1万ドル。

EURJPY 7719
EURUSD 8359
CADJPY 10146
EURAUD 7722
GBPJPY 11868
NZDJPY 5840

 

3ヶ月間なのにこちらもすごい結果です。合計 51654 ドルなんて。

スイスショックの影響は資産曲線を見る限りあまり感じないのですが。

これらもデモ口座で数日試運転してみます。

よければ「時の旅人」(逆張り6つ+順張り6つ)の出航ですね。

関連記事

[FX]前週の平均値と順張り&逆張り EA化(4) GBPJPY版のみ始動

###

[FX]前週の平均値と順張り&逆張り EA化(5)

以前の記事「前週の平均値と順張り&逆張り EA化(4)」でも書きましたが、各通貨の逆張りバージョンを全部作りました。

過去 3ヶ月の結果が最もよくなるように最適化しています。

スイスショックの影響のある スイスフランがらみのものは除いて、なかなか有望なものは次の 6ペア。

2014/12/1 – 2015/2/28 の 3ヶ月の総損益(ドル)を示します。 元金は 1万ドル。

USDJPY 9387
EURJPY 9703
AUDUSD 4644
AUDJPY 9684
GBPUSD 10201
NZDUSD 9560

 

3ヶ月間なのによすぎますね。合計 53179 ドルなんて。

スイスショックの影響は資産曲線を見る限りあまり感じないのですが。

これらをデモ口座で数日試運転してみます。

関連記事

[FX]前週の平均値と順張り&逆張り EA化(4) GBPJPY版のみ始動

###

ふるさと納税4回め / 無洗米 大館市

以前の記事「ふるさと納税3回め / イチゴ 玄海町」でセキの切れた私はさらに続けて納税(寄付)することにしました。

カミサンからリクエストの無洗米。

無洗米でない普通のコメなら長野県阿南町が一番と かの本に書かれていたが、今は受け付けていないようです。

高知県奈半利町も割がいいのですが、「ふるさと米」というブランド名です。

別にコシヒカリでなくてもいいのですが、カミサンは無洗米とのリクエスト。

*

ということで、私のチョイスは大館市(秋田県)の「あきたこまち(無洗米)」10kg。

10000円で 10kg、しかも無洗米というのはなかなかないのでは。

「あきたこまち」のパッケージはかわいいが、佐々木希実写バージョンも作れば独身男性がどっと買うのに。

> ふるさと納税ポータルサイト

###