保証金の割合からロットを正しく計算すること - ページ 6

 
gochu:

建設的な批判を受け入れる


上に同志ビニンに 書いたとおりです。


TICKVALUEは TICKSIZEの 価格を示す。

そして、SLまでの 距離はPOINT ポイントで示される。

POINTは TICKSIZEと 同じとは限りません(Alpariの3桁ペアXAUUSDを 参照ください)。

そのため、SLまでの 距離をPOINTから TICKSIZEに 変換する必要があります。

そうでなければ、このような場合、10倍の過大評価ロットを得ることになります(これは、私が再計算を追加するまで、XAUUSDのペアで見たものです)。

再計算は次のように行われます (TICKVALUEを 乗じる前):MarketInfo(lSymbol,MODE_TICKSIZE) / MarketInfo(lSymbol,MODE_POINT)です。

PS: そして、あなたはpipsLoss== 0のチェックをしないので、"division by 0 "のエラーが発生する可能性があります。


 
EverAlex:

上に同志ビニンに 書いたとおりです。


TICKVALUEは TICKSIZEの 価格を示す。

そして、SLまでの 距離はPOINT ポイントで示される。

POINTは TICKSIZEと 同じとは限りません(Alpariの3桁ペアXAUUSDを参照ください)。

そのため、SLまでの 距離をPOINTから TICKSIZEに 変換する必要があります。

そうでなければ、このような場合、10倍の過大評価ロットを得ることになります(これは、私が再計算を追加するまで、XAUUSDペアで見たものです)。

再計算は次のように行われます (TICKVALUEを 乗じる前):MarketInfo(lSymbol,MODE_TICKSIZE) / MarketInfo(lSymbol,MODE_POINT)

PS: そして、あなたはpipsLoss== 0のチェックをしないので、"division by 0 "のエラーが発生する可能性があります。


ありがとうございます!確認して確定します。
 

直りました、ドアをノックしてください...。

オフトピックな質問ですが、ターミナルで利用可能な通貨ペアのリストを操作された方はいらっしゃいますか・・・?

どうしようかと迷っています!

 
gochu:

直りました、ドアをノックしてください...。

オフトピックな質問ですが、ターミナルで利用可能な通貨ペアのリストを操作された方はいらっしゃいますか・・・?

どうしようかと迷っています!

それがここ です。 参照:機能一覧 近隣諸国(左列)
 

何のために必要なのか...TICKSIZEとPOINTの 差が出るペアを探したい

を見つけ、スクリプトに手を加えました(添付 https://www.mql5.com/en/code/8317) ... しかし、非常に長い時間がかかります....(私のパソコンでは12分)・・・。もっと速いのが欲しい

いいのが見つからなかったら、自分で書こうかな...。

 

TICKSIZEとPOINTの 不一致を解消する関数はこちらです。

string CurrArray[];

string TICK_NOT_POINT()
{
   string resultString = "\nКоличество валютных пар="+IntegerToString(SymbolsTotal(false))+"\n";
   int quantCurr = SymbolsTotal(false);
   ArrayResize(CurrArray,quantCurr);
   Print(ArraySize(CurrArray));
   for(int i=0;i<ArraySize(CurrArray);i++)
     {
         CurrArray[i]=SymbolName(i,false);
         Print(SymbolName(i,false));
     }
     resultString+="\nНесовпадают TICKSIZE и POINT:";
   for(int i=0;i<ArraySize(CurrArray);i++)
     {
         if((int)(MarketInfo(CurrArray[i],MODE_TICKSIZE)/MarketInfo(CurrArray[i],MODE_POINT)) != 
        (int)(MarketInfo(CurrArray[i],MODE_POINT)/MarketInfo(CurrArray[i],MODE_POINT)))
           {
              resultString +="\n"+ CurrArray[i]+
              " TICKSIZE"+ DoubleToStr(MarketInfo(CurrArray[i],MODE_TICKSIZE), (int)MarketInfo(CurrArray[i],MODE_DIGITS))+ 
              " POINT"+DoubleToStr(MarketInfo(CurrArray[i],MODE_POINT), (int)MarketInfo(CurrArray[i],MODE_DIGITS));
           }      
     }
     return resultString;
}

アルパリ53組のデモだけで、TICKSIZEとPOINTが違うペアは見たことがない。

 
gochu:

TICKSIZEとPOINTの不一致を解消する関数はこちらです。

アルパリのデモでは53組のうち、1組も違うものを見たことがない。


では、ここからどのような結論になるのでしょうか。

pipsからtickへの変換行を追加することはできないのでしょうか?

2桁から3桁になったときに、ロットが10倍になるような機能をユーザーに提供しましょうか?

アルプスで3桁のXAUSDのロット計算で、再計算を加えるまで不一致があったことは、すでに上記で報告しました(口座はリアル、ECN-new)。

TICKVALUEが TICKSIZEの 価格を設定しているが、距離(例えばSLまで)がPointに 設定されている場合、Pointから TICKSIZEまで 再計算する必要があります。

TICKSIZEが Pointと 等しい場所になったからといって、何の意味もありませんし

ティックに再計算しないのは、あなたの関数のユーザーにとって爆弾です。

 

いいえ、どのような方法ではありません...計算のアイデアは、私がやったが、入れていないロット計算でそれを考慮に入れ、TICKSIZEとポイントの 間の係数を計算することでした...(私はロットを計算するための関数を意味します)、最後の関数は、特定のプラットフォーム上で利用可能なすべてのペアの簡単なチェックに必要です(これらの前述のパラメータが異なるペアを見つけるために)...とこれ以上ありません。

私は最終的な権威を主張するものではありませんが...。けん制しあう

私は自分のアイデアを実現するために、自分自身のために書いています。

 

同僚、オフトピックな質問、リソースへのリダイレクトで、ヒントを求めてください。

非取引通貨ペアのイントレバルを調べる方法。

説明しますと、USDRUBが夜間取引されていないプラットフォーム(同じAlpari)があり、この間隔を計算したいのですが、取引が禁止されて いる場合、私は助けを感謝し、私は結果を共有します。

 
gochu:

同僚、オフトピック質問、私はリソースへのリダイレクトで、ヒントを求めています。

非取引通貨ペアのイントレバルを調べる方法。

説明しますと、USDRUBが夜間取引されていないプラットフォーム(同じAlpari)があり、この間隔を計算したいのですが、取引が禁止されている場合、私は助けを感謝し、私は結果を共有します。


プラットフォームと関係あるのか...。本当に夜遊びしないんだなぁ...。みんな寝てるんだ...:-)))