2016-06-05|MT4でFXを勝ち抜く研究をするブログMT4でFXを勝ち抜く研究をするブログ新ブログはこちらへhttps://trv-and-mt4.blogspot.com/ハーモニックパターン検出インジケータV10取説2016年6月11日土曜日[ハーモニック]残り3本になりました。21:00時点ハーモニックパターンを自動検出するインジケータ大変ご好評頂いております。980円での限定販売は残り3本となりました。980円での販売は最初の10本のみですので、早めにご検討ください。「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。インジケータ一覧Twitterもよろしくお願いします。https://twitter.com/mt4programブログランキングにご協力よろしくお願いします。m(._.)mにほんブログ村お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。販売中インジケータ2016年6月10日金曜日[ハーモニック]ハーモニック検出インジケータリリースのお知らせおまたせしました!!?ブログにて少し記事にしたハーモニックパターンについて、検出インジケータを作成しましたのでV1.00としてリリースいたしました。■ハーモニック検知インジケータハーモニックパターンを自動検出するインジケータまず、先着10名様限定で980円で販売いたします。MT4のハーモニック検出インジケータは海外へ行くと見つかりますが、Build600以降未対応のため正しく動作しないものが多いです。あと検出サイズなども固定であとちょっとといった感じに見受けられました。そこで、理想のハーモニック検出インジケータを作るべく自作しました。追加をバージョンアップにて予定しています。・外部ファイルでのハーモニック形状の追加機能また、皆さまからのフィードバックを受けながら作成していきたいと考えていますので、ご要望等ありましたらFX-ONのコメント欄にご記入ください。対応したいと思います。機能アップするごとに、ちょっとずつ価格を上げていく予定です。売り上げがある程度行きましたら、海外書籍も買って、もっと勉強してインジケータの精度を向上させるつもりですので、応援よろしくお願いします。V1.0では、過去記事で解説した、基本の4パターンについて検出します。4つのパターン解説http://mt4program.blogspot.jp/2016/05/blog-post_30.html売りのパターンは赤、買いのパターンは青で描画します。ハーモニックパターンでは、売買候補点が複数発生する場合があります。バタフライパターンでは、XA点に対して127%と161.8%の2点の候補が発生します。このインジケータでは、2点目以降の候補は点線にて追加描画します。確定した足に対しての再描画は発生しないようにしました。形成中の足に対して、両方の点が発生した場合は、大きい方のみ描画します。3つの検出粒度の異なる頂点検出から、ハーモニック形状を検知します。これにより小さいハーモニックから大きなハーモニックまで幅広い形状を検出可能にしました。このアルゴリズムにより、大きなハーモニックの中に小さなハーモニックが検出される場合があります。MT4の描画の問題で、同じ背景色で図形が重なる部分は背景が削除されてしまいます。そこで、背景色をOn・Offするボタンをチャート左端に配置しました。ボタンを押すたびに背景色をOn/Offすることができます。頂点探査結果ラインを描画する場合trueを指定します。最大3つまで指定可能です。0を指定すると、探査を無効化します。初期値は4時間足を想定した値となっています。時間足の場合は24,32,40程度の値をお勧めします。頂点検出のためのパラメータです。指定価格まで来た場合はハーモニックとして描画します。厳密にはハーモニックパターンとは言えません。このような場合は、描画しないときにtrueを指定します。・X-A点間最小PipsX-A間の最小Pipsを指定します。小さすぎるハーモニックを除去します。・背景切り替えボタン位置X・背景切り替えボタン位置Y上記は描画に関する設定です。お好みで修正してください。ハーモニックパターンを自動検出するインジケータまず、先着10名様限定で980円で販売いたします。「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。インジケータ一覧Twitterもよろしくお願いします。https://twitter.com/mt4programブログランキングにご協力よろしくお願いします。m(._.)mにほんブログ村お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。プロファイリングを使った実行速度調査&クラス呼び出し速度改善すこし超入門からは外れるかもしれませんが、速度改善のお話しです。インジケータを作っていて、あー遅いなー?と思うことがあります。どこで遅くなっているのか調査する場合、ソースコードを眺めて追いかける良いツールがメタエディタにはついています。プロファイリング機能です。これは、プログラムを実行した際、関数毎に時間を計測してくれる機能です。これを使うと、どこで遅くなっているのかが見た目で編別可能になります。遅いなーと思うプログラムをメタエディタで開きます。ツールバーのプロファイルスタートボタンを押します。下画像の赤丸の箇所です。プロファイル開始ボタン計測が開始されると、赤い■ボタンに変わりますのでチャートにインジケータが表示された後に、この赤■ボタンを押します。計測が終了すると、メタエディタ上に実行にかかった時間が表示されます。ソースコード右端にもバーで表示されます。このバーが大きいほど時間がかかっている個所になりますので、改善方法がないかどうかを調査していく形になります。MQLにおける速度改善の基本は・ループの中で余計な処理をしない。・何度もループしない。2点にほぼ集約されます。ループ外へ処理を追い出す修正は効果が高いため、具体例を挙げたいと思います。0)の結果はループ変数のiに全く影響をうけません。このような処理はループの外に追い出す必要があります。){//何か処理}}この修正で、処理時間が約1/2になります。rates_totals実際プロファイリング機能で見てみましょう。■ループ内の処理をループ外に追い出した場合の速度差InnnerCallに対してBeforeCallは処理時間を示すバーの幅が半分になっていることが見て取れるかと思います。このようにループの中の処理見直しは改善効果が高いため、もし表示が遅いなーということがあれば、ループ内処理を中心に見直すことになります。プロファイリングといえば、以前MQLのクラスメソッドの呼び出しが異常に遅い!と文句たらたらだったことがあります。Build971にて再計測してみました。使用したプログラムは次の通りです。}//+------------------------------------------------------------------+OnInitの中で、次の4つの関数を呼び出して速度比較してみます。・直接iOpenをコール(DirectCall)・一回関数をはさむ(IndirectionCall)・クラスの直接参照(ClassCall)・クラスのポインタ参照(ClassPointerCall)結果は次の形になりました。Corp.直接参照が一番早いのは当然として、関数呼び出し~クラス呼び出しについては差がなくなっています。以前はクラス呼び出しが異常なほど(それこそ10倍ぐらい)遅かったのですが改善したようです。これでもっと積極的にクラスが利用できます。「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。インジケータ一覧Twitterもよろしくお願いします。https://twitter.com/mt4programブログランキングにご協力よろしくお願いします。m(._.)mにほんブログ村お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。VPS過去記事まとめTACAさんのブログのVPS速度測定記事をみていて、OANDAのNYサーバーと同じビルに入っているBEEKS-NY4の速度測定が載っていました。56.318msあれ?つかえるネットのほうが早い・・。アメリカリージョンからOANDAサーバーへの反応速度を調べてみると2msとかなり高速です。間11個ほどルーターを経由しているようですが、間のルータはかなり高性能のようです。10ms近い差が出たのは、測定したタイミングによるOANDA側のサーバ負荷の差ではないかと考えています。お昼の時間帯にEURUSDにて測定しましたが、この時間帯はEURUSDは注文が薄い時間帯です。10msの差になるとサーバー側の受付待機時間による誤差と考えたほうがしっくりきます。通常クライアント側の性能差はマイクロ秒の世界になります。プロ口座とスタンダード口座の差かもしれませんね。TACAさんから頂いたコメントにて、つかえるネットへの乗り換えも検討されているようですので、追加の調査記事に期待です^^BEEKS-NY4と比較して、つかえるネットは、1/2~1/4(6月は半額キャンペーン中)ぐらいの値段で契約できます。速度も大して変わらないのであれば、日本語サポートもつかえる、つかえるネットのほうがお得のようです。ちなみに1年前VPS契約するにあたり、私も少し調査しましたので、リンクまとめしておきます。過去記事MT4のEA稼働するには仮想サーバー(VPS)が必須です。VPS会社検討MT4のEA稼働するには仮想サーバー(VPS)が必須です。初期設定MT4のEA稼働するには仮想サーバー(VPS)が必須です。「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。インジケータ一覧Twitterもよろしくお願いします。https://twitter.com/mt4programブログランキングにご協力よろしくお願いします。m(._.)mにほんブログ村お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。MT4サーバーとの通信速度を取得する/DRAW_NONEを確認する。MT4のBuild970アップデートが入りました。再度確認してみたらBuild971がインストールされていました。ex4の後方互換がなくなりましたので注意です。Build971でコンパイルしたex4はBuild960以前では動作しないようです。ビルド970:デモ口座開設の簡素化およびMQL4の機能の拡張https://www.mql5.com/ja/forum/86990さて、MQL回りにあれこれ修正が入りました。これで実装忘れがかなり減らすことができますね。フォーラムに詳細が記載されていますので、そちらにお任せします。それ以外で気になった所を試したいと思います。MQL4:クライアントターミナルのプロパティENUM_TERMINAL_INFO_INTEGERにTERMINAL_PING_LAST(マイクロ秒単位の取引サーバーまでのPingの最新の既知値)が追加されました。1秒は100万マイクロ秒です。return(rates_total);}・・・・・・・AlpariとOandaデモで試しましたが、両方とも、10000000が固定で帰ってきます。EAでも試してみましたが同じでした。