2015年7月31日金曜日

周期解析オシレータ シグナル通りで50%超え! あとは裁量次第?

いきなりEAのバックテスト結果です。
cyclechart.gif
スプレッド 15
総損益 1554.60 総利益 27675.30 総損失 -26120.70
プロフィットファクター 1.06 期待利得 1.75
絶対ドローダウン 262.00 最大ドローダウン 1683.50 (13.42%) 相対ドローダウン 13.42% (1683.50)
総取引数 887 ショートポジション(勝率%) 449 (52.78%) ロングポジション(勝率%) 438 (54.79%)
勝率(%) 477 (53.78%) 負率 (%) 410 (46.22%)
最大 勝トレード 300.00 負トレード -100.00
平均 勝トレード 58.02 負トレード -63.71
最大 連勝(金額) 8 (150.50) 連敗(金額) 8 (-396.20)
最大化 連勝(トレード数) 611.80 (7) 連敗(トレード数) -473.00 (5)
平均 連勝 2 連敗 2


周期解析オシレータは、いわゆる逆張り系のオシレータとなります。
一般的なオシレータをEAに組み込み、教科書通りに取引しても+になる事はほとんどありません。

周期解析オシレータはどうでしょうか?
EURUSD 1時間足で2010/1~2015/7までEAで組み込んでバックテストで確認しました。

価格はFXDDのものを使用しています。
時間系フィルタは使用していません。

アルゴリズムは下の通りでです。
・1ポジション 0.1ロットです。両建ては行いません。必ず決済後次ポジションを取ります。
 買いポジションを持っている状態での買いシグナルは無視します。売りも同様です。
・1時間足の値を15分毎に判定して取引しています。
・15分足7ATRの10倍の値をリミットとしています。リミットは50pips~100pipsです。利確300pipsです。
・周期解析オシレータの売買シグナル(チャート矩形が表示されるタイミング)の1本後から3本後までを取引タイミングとします。
・4LWMAをみて売買シグナルの方向に価格が動いたときにポジションを取ります。

周期解析オシレータは実際のタイミングより早くシグナルをだすので、そのシグナルが本物かどうかの判断をする必要があります。そこで、実際に動き出してからポジションを持つようにしています。

さて、結果を見てみると、勝率は50%を超えています。平均勝トレードより平均負トレードの値が大きくなっています。損切や利益確定のタイミングは少し検討が必要そうです。
とりあえず、ポジションを保持するタイミングとして単純に売買しても50%を超えるというのはかなり優秀なのではないでしょうか?利益のトータルも+です。たとえば、同様にEAで検証して+になる逆張り系のS/Rオシレータですが、勝率は30%台です。周期解析というのは参考になることが過去データでは示されています。

cyclePhase5.png
ついでに現在のEURUSD1時間足の周期解析です。この2日間で2勝2敗といった所です。特に日本時間の午後の早いうちからEURUSDが下げ始めましたが周期解析では1本前にはシグナルを上げています。
最後の買いシグナルはFOMC前ですし、ここでは取らない!などの判断が裁量では行えます。今回は大きく動くだけ動いて下げトレンド継続となりました。チャート解析ではイベントは絶対に予測できませんが、その時の予想によりイベント前にタイミングが来ることがあります。今回は予測できないから取引しないとか、その時の相場状況に合わせて取引が行えるのが裁量取引の良いところです。

実はEAで検証するとタイミング通り取引したほうが利益が大きいのですが、このあたりは取引している人の考え方次第となります。(たぶん、指標発表前に想像していた方向通りより逆方向の結果の方が値動きが大きいのだろうなと。)
さておき、過去の周期による取引のタイミングというのは案外参考になるという事が分って頂けたでしょうか?

ご好評いただいております予測移動平均ボリンジャーバンドです。
ボリンジャーバンドの欠点を解決する! 高追従型ボリンジャーバンド
予測移動平均ボリンジャーバンド
予測移動平均ボリンジャーバンド | fx-on.com

トレンド強度-相関オシレータセット
トレンド・周期解析を組み合わせて相場を制する!
トレンド強度ー相関、周期解析オシレータセット
トレンド強度ー相関、周期解析オシレータセット | fx-on.com

またさらに、予測移動平均ボリンジャーバンドとのセット販売も開始しました。単品で購入するよりお買い得となっていますので、よろしければ、こちらもご検討ください。
8/3まで割引価格で販売中です。
価格の行き過ぎ、トレンド、周期を確認して相場を制するセット
予測移動平均ボリンジャーバンド、トレンド強度相関、周期分析セット
予測移動平均ボリンジャーバンド、トレンド強度相関、周期分析セット | fx-on.com



2015年7月30日木曜日

[MT4プログラミング]クラスメソッドの呼び出しにご用心

classmethod.png
MT4プログラムで少々はまったので・・・・

私はクラス大好きなので、クラスを使用してインジケータを作っています。
さて、ループの中でクラスメソッドを呼び出してインジケータを作っていたのですが、なぜか遅い・・・・。

MetaEditorにはデバッグ実行時の各メソッドの時間を測定するプロファイリング機能があります。
metaprofile.png
このボタンです。

計測してみると・・・。GetPriceというメソッドが全体の40%の時間を占めてします。
メソッドの中身は、GetPriceという関数を呼び出しているだけです。
double CIndicatorBaseData::GetPrice(
int i,      //インデックス
ENUM_APPLIED_PRICE maPrice    //取得価格
)
{
if( i < 0 || i >= m_rateTotal )
{
return 0;
}
return GetPrice(m_open[i], m_close[i], m_high[i], m_low[i], maPrice);
}


このメソッドの中で呼び出しているGetPriceは全体の4%しか占めていませんから、残り35%を、ここの処理が占めています・・・。
判らない。何が遅いのかわからない・・・・・・。

もしかしてMQL4ってクラスメソッドの呼び出しオーバヘッドがものすごく大きいのでは?と思い、クラスのメンバを直接公開して(カプセル化の原則に違反しますが・・。パフォーマンスには変えられません・・・)アクセスするようにしたところ・・・。

解消されました。
・・・・・意味わからん><

クラスポインタへのアクセスが遅いのかと思いきや、そうでもないらしく単純にクラスメソッドの呼び出しが遅い様子。ざっくりと通常の関数に比べて10倍ほど遅い形です。

70万回も回されると、影響が出てきてしまいます。
EAのように処理データを必要な範囲に抑えてしまえる場合は、バックテスト時以外はあまり影響がありませんが、インジケータで大量のチャートバー数を表示していると一挙に効いてきます。

うーん。ループ内の処理はクラス化せずに、関数で処理したほうがパフォーマンス的にはよさそうです。

オブジェクト指向大好きっこな私にとっては苦痛ですが、仕方がないかなぁといったところです。MQLにそこまで本格的なプログラミングをするなという事かもしれません。



2015年7月29日水曜日

周期解析の使い方。トレンドを素早く判断する。

cyclePhase3.png

ここ数日のEURUSD 1時間足 CycleRate=1での周期解析オシレータの結果です。
手書きで、○×△をつけています。

赤い線はゼロラグMAです。

上がり調子でのでロングは、そこそこ良いタイミングでシグナルを出していますが、ショートはほとんど外していますね。

周期解析オシレータにはもう一つの見方があります。周期で下げるタイミングを外れた時はトレンド入りした可能性があるということです。

cyclePhase4.png

これは、21SMAを同時に描画したチャートです。SMA的には横ばいになっているタイミングで売りシグナルが周期解析で発生していますが、ゼロラグMAはあげ調子のままで進んでいます。その後移動平均も上方向に移動し始めています。

大体21周期と考えると次のシグナルまでは10本先となります。シグナルを外した段階で短期トレンド入りしたということで、残り10本を取りに行く戦略が可能です。
周期解析オシレータは変化の1本~5本前にシグナルラインと交差します。(※)
その後の価格変化でトレンド方向を確認可能です。交差してから最大5本分確認しても、残り5本を取りに行くことが可能です。

��※)この事前予測というのは周期解析オシレータの最大の特徴です。波形解析から変化するかも?というのを事前に準備できるのは取引にとってものすごい強みになります。モメンタムを使用していないため売られすぎや買われすぎなどにもとらわれません。予測ですので、もちろん外れることもありますが、それはそれでトレンドを確認できます。周期的にこの辺で変化がありそう?と準備しておくと、色々な取引が可能です。

このように順張り・逆張りの両方の戦略に使える周期解析オシレータです。

短期の動きを確認するため期間9のゼロラグMAを使用しています。
ゼロラグMAはブログ右のリンクよりダウンロードできます。

ご好評いただいております予測移動平均ボリンジャーバンドです。
ボリンジャーバンドの欠点を解決する! 高追従型ボリンジャーバンド
予測移動平均ボリンジャーバンド
予測移動平均ボリンジャーバンド | fx-on.com

トレンド強度-相関オシレータ単品と同じ値段で周期解析がついてきます。
トレンド・周期解析を組み合わせて相場を制する!
トレンド強度ー相関、周期解析オシレータセット
トレンド強度ー相関、周期解析オシレータセット | fx-on.com

またさらに、予測移動平均ボリンジャーバンドとのセット販売も開始しました。単品で購入するよりお買い得となっていますので、よろしければ、こちらもご検討ください。
価格の行き過ぎ、トレンド、周期を確認して相場を制するセット
予測移動平均ボリンジャーバンド、トレンド強度相関、周期分析セット
予測移動平均ボリンジャーバンド、トレンド強度相関、周期分析セット | fx-on.com





2015年7月28日火曜日

周期解析で価格変化を予想するオシレータをバージョンアップ、精度向上です。

cyclePhase2.png

周期解析で価格変化を予想するオシレータをバージョンアップしました。

修正点は次の通りです。
・周期解析のアルゴリズムを見直し精度向上を行いました。
・トレンド状態に入ったことを青いヒストグラムで表示することで、反対方向にポジションを持っていた場合、損切するタイミングをつかめるようにしました。
・チャート上に青赤帯で売買タイミングを表示するように修正しました。
IsShowBuySellRectをFalseにすると、表示をオフにします。

基本的に先行オシレータですので、外す事もあります。外したときの損切タイミングとして、トレンド状態になったことを示す指標を追加しました。
確実に行くなら上の時間帯のトレンド方向を見て同じ方向へのシグナルだけ取引するのが良いかと思います。

基本的には先行してクロスします。クロスしてから1~3本までが取引のタイミングとなります。

周期解析がそこそこ使えるようにまで持って行けたので、セットの価格を3本分に変更します。8/4までは現行の価格で販売いたしますので、興味がある方はお早めに^^

ご好評いただいております予測移動平均ボリンジャーバンドです。
ボリンジャーバンドの欠点を解決する! 高追従型ボリンジャーバンド
予測移動平均ボリンジャーバンド
予測移動平均ボリンジャーバンド | fx-on.com

トレンド強度-相関オシレータ単品と同じ値段で周期解析がついてきます。
トレンド・周期解析を組み合わせて相場を制する!
トレンド強度ー相関、周期解析オシレータセット
トレンド強度ー相関、周期解析オシレータセット | fx-on.com

またさらに、予測移動平均ボリンジャーバンドとのセット販売も開始しました。単品で購入するよりお買い得となっていますので、よろしければ、こちらもご検討ください。
価格の行き過ぎ、トレンド、周期を確認して相場を制するセット
予測移動平均ボリンジャーバンド、トレンド強度相関、周期分析セット
予測移動平均ボリンジャーバンド、トレンド強度相関、周期分析セット | fx-on.com