Wizard In The Market
システムトレードの魔術師

*

■CI解析■人気のVQの計算方法

公開日: : 最終更新日:2015/01/13 その他

おはようございます。キリンです。
アメリカvsガーナは白熱した試合展開でしたね!
前半のガーナの運動量の多さによる守備は鬼でしたが、
やはり後半までそれを続けることができずに、
気持ちの切れ掛かったところでアメリカにPKを与えてしまい、同点。
そこからの両者バテ始めている状況でのプレイは鬼気迫るものがありました。
みんな気持ちだけで動いている。素晴らしい試合でした。
結局は、延長開始数分でガーナが決めた得点が決勝点になり、
ガーナがベスト8進出です。
アフリカ勢最後のガーナ。
ぜひ頑張ってもらいたいものです。
次はウルグアイでしたっけ。
・・・どっちにも勝って欲しい(w
さて、本題のインジケータ解析結果です。
匿名さんからご依頼があったので早速やってみました。
VQのインジケータのリンク
■主要ロジック部
インジケータの主要ロジックを探し出すには、SetIndexBufferを探すのが基本。
どの配列がBufferとなっているかを確認し、それがどのように計算されているかをたどります。
今回の場合は、SumVQ[]が重要なようです。
それを追うことにします。

while (i >= 0)
{
  MH = iMA(NULL,TimeFrame,Length,0,Method,PRICE_HIGH,i);
  ML = iMA(NULL,TimeFrame,Length,0,Method,PRICE_LOW,i);
  MO = iMA(NULL,TimeFrame,Length,0,Method,PRICE_OPEN,i);
  MC = iMA(NULL,TimeFrame,Length,0,Method,PRICE_CLOSE,i);
  MC1 = iMA(NULL,TimeFrame,Length,0,Method,PRICE_CLOSE,i + Smoothing);
  if (Steady==true) {MC=iMA(NULL,TimeFrame,Length,0,Method,PRICE_MEDIAN,i);    MC1=iMA(NULL,TimeFrame,Length,0,Method,PRICE_MEDIAN,i+Smoothing);}
  VQ[i] = MathAbs[※1](MC – MC1) / MathMax(MH – ML,MathMax(MH – MC1,MC1 – ML + (MC – MO) / (MH – ML)) * 0.5) * [※2]MC – MC1 + (MC – MO * 0.5);
  SumVQ[i] = SumVQ[i + 1] + VQ[i];
  if (Filter > 0) if (MathAbs(SumVQ[i] – SumVQ[i + 1]) < Filter * Point) SumVQ[i] = SumVQ[i + 1];
  if (TimeFrame > Period()) SumVQ_MTF[i] = SumVQ[i];
  i–;
}

ここが実際にインジケータのラインを定義している部分になります。
計算に用いる変数はこれです。
MH:高値移動平均
ML:安値移動平均
MO:始値移動平均
MC:終値移動平均
MC1:終値移動平均(Smooting分前のもの)
この主要ロジックの中でもとりわけ重要なのがこの部分

VQ[i] = MathAbs[※3](MC – MC1) / MathMax(MH – ML,MathMax(MH – MC1,MC1 – ML + (MC – MO) / (MH – ML)) * 0.5) * [※4]MC – MC1 + (MC – MO * 0.5);

ちょっと見やすくするとこんな感じです。
■超直感!MT4(MQL)プログラミング講座■
こんな計算式を使っています。
そして、VQ[i]の値は変動率がでてくるので、

SumVQ[i] = SumVQ[i + 1] + VQ[i];

このように、一つ前のSumVQ[i+1]にVQ[i]を足しています。

if (Filter > 0) if (MathAbs(SumVQ[i] – SumVQ[i + 1]) < Filter * Point) SumVQ[i] = SumVQ[i + 1];

さらにその前にフィルター以上の変動率でなければ反映させないという、
こんなのも入ってます。
これが外部パラメータFilterの効果です。
また、SumVQ[i]は事前にCloseの値段を割り当てているので、
変動率の計算のおおもとは外部パラメータのCountBarsのから変動させています。
これが基本ロジック。
簡単に外部主要パラメータの説明をします。

TimeFrame 時間足  実はMTF対応だったんですね。
Length 移動平均の期間
Method 移動平均の方法
Smoothing MC1の移動分
Filter 変動分がFilter以下だったら移動させない
RealTime falseだとローソク足確定時のみグラフを描く
Steady 下記参照
Color グラフを色分けするか
Alert アラートを使うか
SignalPrice

シグナルが表示された価格をオブジェックトで表示させるか

SignalPriceBuy 買いの場合のSignalPriceの色
SignalPriceSell 売りの場合のSignalPriceの色
CountBars インジケータを表示させるバーの本数

MethodとかTimeFrameへの変数の入力は、iMAの関数に対応しているので、
まったくMQLの知識のない人は戸惑ってしまうかもしれないですね。
TimeFrameへの入力できる値の参考リンクはこちら
Methodへの入力できる値の参考リンクはこちら
リンク先の[ Value ]と表示されている部分の数値を入力することになります。
他のロジックとしては、

if (Steady==true) {MC=iMA(NULL,TimeFrame,Length,0,Method,PRICE_MEDIAN,i);    MC1=iMA(NULL,TimeFrame,Length,0,Method,PRICE_MEDIAN,i+Smoothing);}

Steadyがtrueだったら、MCとMC1の適応価格がCloseではなくて、MEDIANになります。
多少の変化はでるのかな。
計算方法は分かりましたが、根底にある理論までの知識がなく、
考察はこの程度でした。
計算方法を見るだけで理論をご理解いただけた方、ぜひお話をお聞かせいただければと思います。
最後までお読みくださりましてありがとうございました!
ご参考になれば幸いです^^

にほんブログ村 為替ブログへ 
Fx-Kirin

About Fx-Kirin

2009年10月にFXを開始、翌年2010年5月から脱サラをしてFX業界に専念。 2012年10月頃から本格的に勝ち始め、一月で資産を倍にする、2年半月間負けなし等、安定した収支で2013年11月に生涯FX収支が1億を超える。 投資スタイルはシステムトレード。プログラミングの知識がほぼない状態から、独学で自分がしたいと思うことであればほぼ実現することが可能なレベルまで成長。好きな言語はRuby, Python。必要となればC++からVBA、Pascal等なんでも行う。MT4/MT5のプログラミングも得意。 2011年にはFXで稼いだ資金をもとにシンガポールに移住し、留学も兼ねて起業をチャレンジするほど、ビジネスを興すことに熱意がある。国内の業者を主に使い始めたことから、2012年に帰国。零細株式会社経営中。

References   [ + ]

1, 3. (MC – MC1) / MathMax(MH – ML,MathMax(MH – MC1,MC1 – ML
2, 4. MC – MC1 + (MC – MO

Adsense

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 57 follow us in feedly

関連記事

no image

C++のDLLからC#にstringを返す

はまりました。const char*はStringで受けるって書いてるんだもん。大変でした。簡単に要点だけ。C+

記事を読む

no image

7bit氏作成 MQLライブラリー解析 part13

こんばんは。キリンです。 今日ご紹介するのは、予約注文の変更を簡単にするものです。 moveStopのみ、stop

記事を読む

UX21A のディスプレイが壊れたので修理

UX21A のディスプレイがぶっ壊れた。 画面にラインが入ったり、ディスプレイが揺れたりするようになりました。最終

記事を読む

no image

Yahoo!知恵袋で見つけた面白い人

おはようございます。キリンです。 最近、Yahoo!知恵袋を見ています。 たまに記事にしたりしてますよね。 そこで見つけ

記事を読む

no image

[]「型 Contacts.People は使用すべきではありません」の解決法

SDK1.5がメインの本で勉強していたら、Contacts.Peopleの使用で怒られちゃいました。型 Cont

記事を読む

no image

なぜFXを始めるのか?

初めまして。風来のキリンです。 これから毎日、このブログを更新することを日課とします。 日々の考えることを綴ることによっ

記事を読む

no image

kconvを使っても文字化けするとき。

「㎡」がtosjisで文字化けしてしまった。そんな時は とかを使うと良いhttp://d.hatena.ne.jp/

記事を読む

no image

オープンソースEAの検証ブログのご紹介

こんばんは。キリンです。 マネーの猿さんが僕のブログのTradeTesterをご紹介してくださっていたので、 アクセス履

記事を読む

no image

11/10 運用結果

<colgroup> </colgroup>バイナリオプション日付曜日取引

記事を読む

no image

チャートの有用性

ちょっと内容が複雑になってきて、 短文ではまとめられなくなってきました。 んー、それでも頑張って書いてみます。 今回のお

記事を読む

Comment

  1. ゆんゆん より:

    SECRET: 0
    PASS:
    部長様
    おはようございます☆
    VQとADXを使用していたので、今回のお話はすごく興味深くありがたいです!
    今は、半分意味がわかってませんが勉強して理解できるようになりたいです!
    とても解りやすいです。ありがとうございました*^-^*

  2. SECRET: 0
    PASS:
    >ゆんゆんさん
    おはようございます!
    ご参考になったようで嬉しく思います^^
    VQは有名なだけあって使い勝手も良さそうですよね。
    コメントありがとうございます♪

  3. 匿名隊 より:

    SECRET: 0
    PASS:
    VQ解析をお願いした匿名隊です。
    早速解説していただきありがとうございました!
    フィルターの部分の計算にカンマが含まれていますが
    カンマが入ると途端に理解が不能になりました^_^;
    その辺をもう少し詳しく教えていただけませんでしょうか。
    よろしくお願いいたします!

  4. ごんた より:

    SECRET: 0
    PASS:
    難しくて理解できないです~
    VQは高値移動平均、安値移動平均、等から算出されたインジケーターなんですね?
    これらの記述がわかると楽しくなるでしょうね。
    実際いろんなインジケーター試してるが何をしているのがわからないが何となく使っているのも多いです。
    大変参考になります(*^_^*)

  5. SECRET: 0
    PASS:
    >匿名隊さん
    コメントありがとうございます^^
    ご参考になれば幸いです。
    フィルターの計算部にはカンマは入ってないと思いますよ。
    具体的に分からない箇所を提示していただけると、お教えできますよー

  6. SECRET: 0
    PASS:
    >ごんたさん
    そうですね!
    各種移動平均を組み合わせて指標にしているみたいです。
    根底にある考え方が分からないので、なんともいえないんです;;
    ご参考にしていただけたみたいで嬉しいです^^

  7. mimi より:

    SECRET: 0
    PASS:
    はじめまして。
    プログラム半年目の素人です(^_^;
    ちょくちょく拝見させてもらっています。
    以前、VQを改良していたのですが、諦めたことがありまして(^_^)。
    確か、Tickの度にすべてのBarを計算し直していたと思います。これを、計算していないBarだけ計算するように出来ないでしょうか。
    時間があるときでかまいません。
    アドバイスを頂けたら幸いです。
    ぜひ、よろしくお願いいたします♪

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Adsense

システムトレードを始める前に知っておきたかったこと

今日の勉強会で発表してきました。nbviewer に共有しておきます。 システムトレードを始め

chmod で やらかしてしまったときの対処法

メモ書きです。 find | xargs とかを普通にやってしまうと、すぐに argument

AMD Ryzen & Nvidia GTX 1080 BTO PC 構成・組立と Ubuntu インストール

まだググっても、構成例とか出てないので参考になるんじゃないかなと。機械学習用ですが、全然ゲーム用

Windows のデスクトップアプリをSSHクライアントから再起動する

シェルスプリクト一発で、システムトレードの設定を一括で更新して、MT4を再起動したいとかそういう

UX21A のディスプレイが壊れたので修理

UX21A のディスプレイがぶっ壊れた。 画面にラインが入ったり、ディスプレイが揺れたりするよ

→もっと見る

PAGE TOP ↑