1ピップあたりの価格 - ページ 9

 
gordon:

私の定義は、文脈を無視して引用されると、本来の意味を失います。MODE_TICKSIZE の定義にある「価格」という単語は、実際に可能な 価格提示を指していますが、Point の定義ではあらゆる価格を指しています。

- Gordonさん、私の定義もあまり熱くないですし(ポイント=最小10進法の掛け算)、16進法の例えもダサいですし...。でも、ここに勝機があるかもしれないね。

ロジック。
ブローカーは、MODE_LOTSIZEが10万通貨単位、MODE_TICKVALUEが10通貨 単位を中心に、ペア間の価格関係を確立する必要がある。この相互関係が均等であることによってのみ、価格は互いに引用されることができるのです。これがFXのプライスビルディングの基本だと考えています。

Point = MODE_LOTSIZE / クオート通貨でのTickvalue 例:
GBPUSD 0.0001 = 100,000 / 10 USD
USDJPY 0.01 = 100,000 / 1,000 JPY <-- MathRound( MODE_TICKVALUE * 相場通貨の最新のBid )
CHFJPY ......などなど、もし確認できる方がいらっしゃいましたら、教えていただけると幸いです。

先物契約について話し始めると、すべての賭けが外れてしまいます。たとえば、FXProには、ほぼ通常のフォーマットである#AAmyの先物契約があり、"my "はM0のような標準的な期限コードです。EUR_JPY_futって、なんか変な合成契約のような気がするんだけど。

- OK Jjc...私は、将来、価格とTICK_VALUEが異なる建物になると仮定しています。だから、これは間違いなくすべての非外国為替商品を除外することになる。Prefixesとin-between-fixesは可能性が低いと思われます。

- CB 上記の計算について、皆様のご意見を伺いたいと思います。これまでのご意見、ありがとうございました。

よろしくお願いします。
カメオ

 
cameofx:

- Gordonさん、私の定義もあまり熱くないですし(ポイント=最小10進数の価格の乗算係数)、16進数の例えもダサいですし...。でも、ここに勝機があるかもしれないね。

ロジック。
ブローカーは、MODE_LOTSIZEが10万通貨単位、MODE_TICKVALUEが10通貨 単位を中心に、ペア間の価格関係を確立する必要がある。この相互関係が均等であることによってのみ、価格は互いに引用されることができるのです。これがFXのプライスビルディングの基本だと考えています。

Point = MODE_LOTSIZE / クオート通貨でのTickvalue 例:
GBPUSD 0.0001 = 100,000 / 10 USD
USDJPY 0.01 = 100,000 / 1,000 JPY <-- MathRound( MODE_TICKVALUE * 相場通貨の最新のBid )
CHFJPY ......などなど、もし確認できる方がいらっしゃいましたら、教えていただけると幸いです。

- OK Jjc...私は、未来はまた別の価格とTICK_VALUEの建物を持っていると仮定します。したがって、これは間違いなくすべての非外国為替商品を除外することになります。Prefixesとin-between-fixesは可能性が低いと思われます。

- CB 上記の計算について、皆様のご意見を伺いたいと思います。これまでのご意見、ありがとうございました。

よろしくお願いします。
カメオ

Digits = 5とDigits = 3では、ロジックが変わるのでしょうか?
 

ようやく投稿にこぎつけました...

Would the logic change if Digits = 5 or Digits = 3?

ロジックを変更することはできません。少なくとも、私はそれを理解しようとしています。

私はいくつかのことの底を取得しようとしている、キャストは今のところです。ポイント、MODE_TICKVALUE、MODE_TICKSIZE、価格です。このような場合、「このような場合は、どのようにすればよいのか?

IMOは、 引用された通貨で 変換されたMODE_TICKVALUEは非常に重要 です だから、議論のために、私はそれをQUOTE_TICKVALUEと呼ぶことにします。ちなみに前の式は逆です。

Pointが本当に.Pointかどうかを計算するには、次のようにします。QUOTE_TICKVALUE (TickValue in quoted currency) / MODE_LOTSIZE であれば、このようになります。(Calc_PointはPointと一致するものとします)

string Sym = Symbol();
double Calc_Point = QUOTE_TICKVALUE(Sym) / MarketInfo(Sym, MODE_LOTSIZE);
int QUOTE_TICKVALUE(string Sym)
{
   string quoted_currency_name = StringSubstr(Sym,3,3); double TV, QTV = 0.0;
   if (MarketInfo(StringConcatenate("USD", quoted_currency_name), MODE_LOTSIZE)) > 0)
   {
     TV = MarketInfo(Sym, MODE_TICKVALUE);
     QTV = MathRound(TV * MarketInfo(Sym, MODE_BID));
     return(QTV);
   }
   else if ((MarketInfo(StringConcatenate(quoted_currency_name, "USD"), MODE_LOTSIZE)) > 0)
   {
     TV = MarketInfo(Sym, MODE_TICKVALUE);
     QTV = MathRound(TV * MarketInfo(Sym, MODE_BID));
     return(QTV);
   }
}
注:USD 形式で引用通貨がベースになっているクロスペア(例:EURGBP)については、上記を少し修正する必要があります。

だから 任意の時間、任意の価格:

USDJPY, GBPJPY, AUDJPY, XXXJPY ...... QUOTE_TICKVALUE of --> 1000 [JPY]
EURUSD, AUDUSD, GBPUSD, XXXUSD ...... QUOTE_TICKVALUE of --> 10 [USD]
EURCHF, USDCHF, XXXCHF...... QUOTE_TICKVALUE of --> MathPow(10, x) [CHF] となる。

フローティングTICK_VALUEからQUOTE_TICKVALUEを「抽出」していることを強調しておく必要があります。つまり、QUOTE_TICKVALUEはブローカーによって事前に決定され、さらに重要なことは、引用通貨として機能する各通貨間で平行に一貫していることだと思います。つまり、MODE_LOTSIZE = 100,000でUSDのQUOTE_TICKVALUE = 10である限り、クォート通貨として機能する他のシンボルコンポーネントも一貫していることが確認できます(すなわち、他のQUOTE_TICKVALUEを10で割らずに10 USDを1 USDに変えることはできません -- 私はここに私のValid_ Pointを大きく決定できるところがあると思います)。ご理解いただけたでしょうか...

最近、ネットとMT4を同時には(どうしても)できません(ややこしい・・・)。というわけで、どなたかお手伝い、または検証していただけると助かります。

カメオ

 

私は必要なもの、Valid_Pointとさらに多くのものを見つけました。Point、TickValue、Ticksize、Symbol()、そして一般的な価格に対するより深い理解です。LEHayesがこのスレッドを立ち上げて以来、彼らの洞察とコメントを共有しているすべての人に感謝します。

よろしくお願いします。
カメオ

 

私が引き起こしたすべての脳内嵐をご覧ください。 役に立ったのなら幸いです。 私はこのスレッドについていく時間がありませんでしたが、見直す機会を得たいと思います。

このような議論と素晴らしい仕事の後、私たちは私たちが探していたものを生成するための標準的な関数の ようなものを持つに至っているのでしょうか? この質問は、私たちを要約に導くためのものです。

 

クロス通貨以外の金属や他のシンボルで上記のような計算のヒントを得た経験のある方はいらっしゃいますか?

シンボルの1Pointの動きの口座通貨での価格変化の計算に興味があり、このトピックを見つけました。

私の基本的な考え方はこうです。

1ピップあたりの価格 = 約定サイズ * ポイント

口座通貨でのPip単価=Pip単価×口座カウンタークロスレート。

ここで

契約サイズ = MarketInfo(Symbol(), MODE_LOTSIZE)

ポイント = ポイント = MarketInfo(Symbol(), MODE_POINT)

Account Counter Cross rate は、シンボルの相対通貨の価格を口座の通貨で表現したものです(CCCAAA bid rate、AAA は口座の通貨、CCC はシンボルの相対通貨)。

上記を異なるブローカーのデモ口座(icm、insta、fxopen、fxopen ecn)で、口座履歴の実際の1.0ロットの取引と照らし合わせて確認しました。また、cloudbreakerのtickvalueの計算方法も確認しています。

というのを発見しました。

- シンボルの1Pointの動きに対する価格は、ブローカーによって、また金属の場合、簡単に計算することはできません。

- cloudbreaker の tickvalue * point / ticksize 式でも、誤った結果につながる可能性があります (insta - silver, icm - eurusd, fxopen - silver and gold)

- icm - goldの場合、Contract size * Pointでも悪い結果になる(実際の5.0ではなく0.5、ブローカーのデータエラーか?)

こちらで詳細な結果を確認することができます。1ピップ あたりの価格

ということで、私の結論は、100%自信のあるPrice per pipの計算方法はない、ということです。

 
あなたが書いたこの小さなプログラムを教えてくれてありがとう。こんなに簡単だったなんて!!時間の節約になりました:-)
engcomp:

私が開発した小さなスクリプトを添付しますので、あなたの質問に答えてくれるかもしれません。

スクリプトには "extern "パラメーターがないので、コード内で変更して再コンパイルする必要があります。

experts/scriptsフォルダにロードして、コンパイルし、チャートに添付してください。

どうなるか教えてください、Helmut。

 
DE30についてのコメント
double  PointValuePerLot(string pair=""){
    /* Value in account currency of a Point of Symbol.
     * In tester I had a sale: open=1.35883 close=1.35736 (0.0147)
     * gain$=97.32/6.62 lots/147 points=$0.10/point or $1.00/pip.
     * IBFX demo/mini       EURUSD TICKVALUE=0.1 MAXLOT=50 LOTSIZE=10,000
     * IBFX demo/standard   EURUSD TICKVALUE=1.0 MAXLOT=50 LOTSIZE=100,000
     *                                  $1.00/point or $10.0/pip.
     *
     * https://forum.mql4.com/33975 CB: MODE_TICKSIZE will usually return the
     * same value as MODE_POINT (or Point for the current symbol), however, an
     * example of where to use MODE_TICKSIZE would be as part of a ratio with
     * MODE_TICKVALUE when performing money management calculations which need
     * to take account of the pair and the account currency. The reason I use
     * this ratio is that although TV and TS may constantly be returned as
     * something like 7.00 and 0.0001 respectively, I've seen this
     * (intermittently) change to 14.00 and 0.0002 respectively (just example
     * tick values to illustrate).
     * https://forum.mql4.com/43064#515262 zzuegg reports for non-currency DE30:
     * MarketInfo(Symbol(),MODE_TICKSIZE) returns 0.5
     * MarketInfo(Symbol(),MODE_DIGITS) return 1
     * Point = 0.1
     * Prices to open must be a multiple of ticksize */
    if (pair == "") pair = Symbol();
    return(  MarketInfo(pair, MODE_TICKVALUE)
           / MarketInfo(pair, MODE_TICKSIZE) ); // Not Point.
}
 
FX以外のシンボルでリスクパーセンテージを計算しようとしていますが、ほとんどのFX以外のシンボルは非常に異なる挙動をするため、少しも信頼できるものを思いつくことができません。どなたか、正しいリスクパーセンテージを計算するために、FX以外のシンボルの正しいピップバリューを計算する方法をご存知の方はいらっしゃいますか?
 
上記が正しく動作しないのはなぜですか?
理由: