トレード備忘録 & MT4/MT5インディケータ及びEAの開発

日々のトレード備忘録及びMT4/MT5に関する事項

杉田勝氏の相場予測でポンド円のトラリピを仕掛けてみる

2019-10-30 01:50:16 | 投資

 10月23日、ダウ理論で名をはせる杉田勝氏がFXプライム社にてウエッブ・セミナーをされた。「エリオット波動を使ったFXトレーディングについて」というタイトルであったが、内容は10月末から11月にかけての各通貨ペアの動向を大胆に予想するものであった。

 冒頭に掲げたのは、セミナー資料の中、ポンド円に関するチャートである。杉田理論のうち、価格分析(縦軸)については、それなりの理解はできるのであるが、タイムサイクル(横軸)の分析手法については、氏の門下生以外には知らされていないようで詳細は分からない。それでも、近未来の価格の天井や大底となる相場転換点を明確に示されるので聴いていて小気味よい。 

 ポンド円は11月中旬ごろには、146円台を付けに行くとのこと、FX先生のご託宣に従って、MT4のトラリピの買い仕掛けで一口乗ってみた。 

 セミナーは下記URLにて録画公開されているので、ご参考まで。

 https://players.brightcove.net/5237767225001/QOahBaP9Ed_default/index.html?videoId=6097252856001

MT4 トラリピEAはMetaGenicFXにて公開中

https://metagenicfx.thebase.in/


MT4 逆張り指標と順張り指標の方向性が一致したときにエントリー

2019-10-24 14:45:03 | 投資

(USDJPY 1時間足) 

 先に公開した『裁量デイトレ & スキャルピング用チャート・セットアップ』が好評を得ていることに加え、筆者のトレード仲間からもいろいろなコメントやアドバイスを頂いておりまして、大変感謝しています。 

 掲載したチャートはそうしたご意見に基づいて、更にその利用法のグレードアップを図ったものです。オリジナル・チャートとの違いは、メインチャートのエンベロープをボリンジャーバンド(σ3まで表示)に代えています。サブチャートには、新たにMACD(12,26,9)を付け加えました。 

 表記させたインディケータは、メインチャートに① MetaGenic Super Signals、② MyBand123、そして、サブチャートに③ DT Oscillator Simplified、④ MACDの4種類となります。 前ブログで紹介の「デイトレ用MT4セットアップ」には、① Super Signalsと③ DTOがパッケージされていますので、そこにMT4に標準装備されているBollinger BandsとMACDを追加表示させたにすぎません。 

1)買いのエントリー

相場が底値圏であることに加えて、トレンド系テクニカル指標が、下降から上昇に転換したことを確認、具体的にはオシレータ指標のDTO(空色の曲線)が30以下で、且つ、MACD(赤)がマイナス圏にあるとともに、シグナル(青)の上に位置していることを確認して買いのエントリー。 

2)売りのエントリー

 相場が天井圏にあることに加えて、トレンド系テクニカル指標が、上昇から下降に転換したことを確認、具体的にはオシレータ指標のDTO(空色の曲線)が70以上で、且つ、MACD(赤)がプラス圏にあるとともに、シグナル(青)の下に位置していることを確認して売りのエントリー。 

 サブチャートの青印と赤印が1)と2)のエントリーポイントですが、いずれの地点も逆張り指標と順張り指標の方向性が一致していることに留意していただきたい。DTOはRSIが発展したものですから、逆張り指標としても信頼性は高いとされています。メインチャートのSuper Signalsの矢印ですが、これも高値圏・安値圏を示しています。Super Signalsの売買サインはあくまで最高値・最安値の候補に過ぎませんから、決して、これだけでエントリーすることは危険であること、繰り返すまでもありません。Bollinger Bandsは参考までに描画させています。 

 現在、上記手法をプログラム化したEAを作成中です。逆張りのようでいて、実は順張りでもありますから、試作の段階ではありますが、期待利益率(PF)2以上となるバックテスト(2018年、2019年)の結果を残していますので、少し期待しています。


MT4 バックテストでのエラー、TestGenerator unmatched?

2019-10-16 11:50:16 | 投資

 MT4でソ-スプログラムを作成し、コンパイルも異常なく終了した。動作確認のため、バックテストを行ってみたところ、テストは順調に進んでいる様子、ピーという終了音とともにレポートタブを開くと、結果はなんと何もなく、ただただ各数値にゼロが並んでいる。

 理由は直ぐに判明した。(TestGenerator: unmatched data error (volume limit 34403 at 2019.08.16 12:00 exceeded)というエラーメッセージがあふれていたからだ。その他にもある足の価格データが合致しない旨の表示がある場合もあった。(TestGenerator: unmatched data error (high value 1.21910 at 2019.08.30 08:00 is not reached from the least timeframe, high price 1.21900 mismatches) 

 エラーの発生原因は、『ヒストリカルデータにおいて、どこかの足のデータが抜けていたり、不正な値になっていたりするため』とされているが、筆者の感覚では、理由はそれだけではないように思える。なぜなら、同じEAのテストでもある時は何事もなく終了したものが、別の機会ではエラーの症状となることもあるからである。更に、エントリー条件に新たな条件を追加すると、追加以前では正常に終了したのに対して、追加後はエラーとなるケースも見られた。 

 問題はヒストリーセンターばかりにあるのではないようだ。こちら側のパソコンの処理能力も関係しているのではなかろうか。エントリー条件が複雑になったり、トレイリングストップを多用したりするとパソコンに対する荷重が数倍化する。そのためにヒストリカルデータをすべて正しく処理することができなかったと思われるのである。

 一方、同じ論理式で作成したMT5 EAを同じようにバックテストに掛けると、こちらは何の問題もなくスムーズにテストが完了する。MT5の開発思想が「実行速度の迅速化」に重きを置いたといわれるから、自動売買の環境としてはMT5のほうが一歩進んでいるようである。 

 MT5で首尾よくテストを通過すれば、MT4でもトレードでは正しく作動する。通常のMT4自動取引では、バックテストのスピードは必要ではないからである。

 筆者としての対策は二つに一つ。パソコンを最新鋭のものに買い替えるか、バックテストはMT5で行うかのいずれかのいずれかである。 

 ハードやソフトに詳しい方のご意見をお伺いしたいものである。


MT4でも使える便利な構造体の時間関数

2019-10-11 11:59:47 | 投資

 旧MT4では時間関数datetime型関数に限られていたが、新MT4ではMT5と共通の構造体型のMqlDateTime関数が利用できるようになり、EA作成者にはうれしい環境となっている。 

 例えば、EAの始動開始時間を設定する場合に、開始時間をサーバー時間にて設定するには、

//開始時間(時分単位で設定)

MqlDateTime time;

TimeToStruct(TimeCurrent(), time);

time.hour = BeginHour;

time.min = BiginMin;

time.sec = 0;

datetime BeginTime = StructToTime(time);

 これで、サーバー時間での開始時刻が何時何分で設定できる。BeginHourとBeginMinを外部変数にしておけば、この時刻をベースに以後何時間EAを作動させるかとの、命令を出せばよいことになる。 

 また、TimeToStructの引数TimeCurrent()をTimeLocal()とすれば、サーバー時間ではなく、使用しているパソコンの時刻(日本時間)で設定できるので、サーバー時間を意識することなく使えて便利である。更に、開始時刻のみならず、終了時刻を別途同様に設定すれば、開始時刻と終了時刻とを同時に設定できるようになる。

 TimeLocal()は、あくまで 、国内のパソコンやVPSには妥当するが、外国のVPSを利用するには、これをグリニッジ標準時ベースで日本時間に変換する必要がある。こちらも簡単で、TimeGMT()+9とすれば、世界中どこのVPSを使っても、日本時間での時刻設定が可能となる。

 構造体とかクラスとかは、筆者も専門家ではないので詳しくはないが、MT4/5で用意されているものが利用できるようになれば十分ではないかと考えている。


相場の潮目変化を一気に取り込むDynamicHiLoBand _EA

2019-10-06 22:05:44 | 投資

 水上紀行氏提唱のBB5(ボリンジャーファイブ)を本ブログで紹介するとともに、トレンド発生の前兆現象であるBBσ2のバンド幅縮小時に仕掛ける半自動EAを開発した経緯がある。 

 開発に際してはバンド幅の縮小を数値的に捉えて、これをプログラム化することにより完全自動取引型EAをこころざしていた。BB SqueezeやATR等のインディケータを使った計算式を組み込んでみたが、どうしても汎用性において満足のいく結果が得られなかった。水上講師が提唱されているように、バンド幅の縮小の判断はどうしても目視に頼る方法しかなかったのである。 

 その後もBB5に代わる仕掛け条件を呻吟していたのであるが、ある時、豊島久道氏著「FXメタトレーダー実践プログラミング」を読み返している際に、HLBand.mq4という同氏作成の教材用インディケータが目に留まった。インジをチャートに描画すると、かなりの好感触があった。過去20期間の最高値をUpper Band、最安値をLower Bandとして表示される。アジア市場から欧州市場へ、そして米市場へと取引時間帯が推移する過程で、バンドが変遷していく様子がよく分かる。計算式も過去の高値、安値を基準にすることができることから、完全自動型EAとしてのプログラム化には、BBよりも優れているかもしれない、というのが第一印象であった。 

 著書には、HLBandをiCustom()とする教材用EAも紹介されていたが、これはそのまま使うと大きなドローダウンに遭遇することがあり、バックテストでも必ずしも好結果は出ていなかった。そして、東京市場をはじめとするアジア市場時間帯ではレンジ相場となりやすいため、ダマシが多くなる。できれば、東京市場終了後の午後3時からニューヨーク市場のクローズに近い日本時間午前3時までの取引時間制限のついたEAを作成してみたい。 

 先ず、第一に、HLBandを改良に取り掛かり、新MT4 strictでHiLoBandとして書き直した。MT4のインジ作成もMT5のインジ作成も今では共通のエディターが使われているから、先ず、MT5でインジを作成すれば、それはそのままMT4のインジとなる。先にMT4を作成すると、MT5では作動しないことがある。今日では、MT5が優先だから、「逆は必ずしも真ならず」ということになる。 

 EAもMT4用とMT5用2種を作成してみた。主な仕様は次のようになっている。仮称は「DynamicHiLoBand_MT4EA」と同名のMT5EA)

① 筆者推奨の通貨ペアはGBPJPYの4時間足、以下同通貨ペアの例

② HiLoBandの期間は20期間

③ 終値ベースでUpper BandとLower Bandを超えた場合、新しい足の始値でエントリー

④ 初期損切り値(SLpips)は35pips

⑤ 利確値(TPpips)、原則トレーリングストップ(TS)を使うので未設定(0)

⑥ TSpipsは15pips、トレーリングストップ(TS)を利用しない場合は、TSpipsを0(ゼロ)とし、TPpipsを適宜設定する

⑦ 取引時間制限を日本時間で設定。日本時間午後3時から午前3時までのみエントリーということであれば、StartHourを15、EndHourを3とすればよい。分刻みで設定できる

⑧ 2個のエントリー方法から選択できる

 トレイリングストップ(TS)のTSpips 15pipsで一旦手仕舞った後は、同一ローソク足内で、なをエントリー条件が満足されていても再発注はしない方法(EntryType 0)、手仕舞った後もエントリー条件が満足されていれば再発注する方法(EntryType 1)のいずれかを選択する。4時間足では、バンドを突破すると大きく飛び出すことが多いため、2度、3度とエントリーを繰り返すことがある。

⑨ 後に述べるバックテストの結果では、EntryType 1で、且つ、取引時間制限を設ける選択が利益総額、PFともに優れていた。 

その他特記事項

 先にも述べたが、HiLoBand(20)の上下バンドを相場が突破すると、4時間足では15pips以上一挙に動くことが多い。TSpipsを15に設定した場合、たとえダマシに遭遇してもプラスマイナスゼロで逃げられることが多い。もちろん、高値・安値が15pipsに届かないで相場が反転する場合には、35pipsの損切りとなる。 

バックテスト

① 対象通貨ペアと時間軸:GBPJPYの4時間足(4H)スプレッドは2pips

② テスト期間:本年1月~本日までを2期間に分かち、前者をバックテスト、後者をフォワードテストとする一般的なテスト方法

③ ここに図表として示したのは、年初から本日までの全体のテスト結果。エントリー方法をEntryType 1、エントリー時間制限を日本時間午後3時から翌日午前3時までとしている。 

 

トレード回数: 163、利益総額: $1,224.60、PF: 1.75、勝率: 69.3%、利回り:$10,000(レバレッジ1.2)で10ヶ月間の運用成績が12.24%ということは、これをレバ3で1年間運用すると利回りは、年30.6%ということになる。


 本EAの特徴はトレイリングストップに頼るところが大きいため、1分足ベースのEvery Tickでテストを行う必要がある。そのため、データが年初から揃っているAlpari社のMT4を利用した。 

 思いの外好ましいテストデータが出てきたので、次回MetaGenicFX社との打ち合わせの際、EAの公開につき検討したいと考えている。

追記:10月8日、下記にて本EA公開されました。

 https://metagenicfx.thebase.in/