エラー、バグ、質問 - ページ 2687

 
Andrey Dik:

をご覧ください。

そして、マットコンピューティングモードも。

そこにも100mioの制限があるのでしょうか?

 
Andrey Khatimlianskii:

そこにも100mioの制限があるのでしょうか?

矢張り

 
Andrey Kaunov:

総じて、ブローカーは頑なに私の質問をフォーラムから削除しました。3回目以降は、私の個人的なメッセージにくだらないことを書いて返信してきました。

ブローカーから返事が来ないのですが、どう答えたらいいのかわかりません。


P.S. 私の投稿を1つのスレッドに残してくれましたが、返信もさようならもありません。

https://forum.alpari.com/index.php?/topic/

同じブローカーで取引しています。同じ問題に直面した。通貨と金(インデックスも同様)の違いは、SYMBOL_TRADE_MODEプロパティにあります。

通貨については SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_FOREX 、金属およびインデックスについては SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_CFDLEVERAGE とします。

このブローカーまたは SYMBOL_CALC_MODE_CFDLEVERAGE モードのプラットフォームは、プロパティ SYMBOL_TRADE_TICK_VALUE_PROFIT と SYMBOL_TRADE_TICK_VALUE_LOSS を正しく計算しないようです。

そのため、SYMBOL_CALC_MODE_CFDLEVERAGEモードで記号を計算するには、もう少ししゃがまないといけない。ドキュメントにある数式を使用します

利益:(close_price - open_price) * Contract_Size*Lots

.

このブローカーでは、口座通貨での始値、ストップロス価格、最大損失額に応じてポジション量を計算する機能の一例を示します。アルパリで正常に動作しています。他のブローカーではまだ確認していません。

double calcVolume(double sl, double price, double maxLoss){
   ENUM_SYMBOL_CALC_MODE cm = si.TradeCalcMode();       // si - внешняя переменная CSymbolInfo из стандартной библиотеки
   double priceDiff = MathAbs(price - sl); 
   double ticks = priceDiff/si.Point();         
   double lots;
   string convertSymbol;
   string accountCurrency = AccountInfoString(ACCOUNT_CURRENCY);
   Print("SL ticks: ", ticks);
   switch(cm) {
      case SYMBOL_CALC_MODE_FOREX:      
         // это для валютных пар
         lots = maxLoss / ticks / si.TickValueLoss();
         break;
      case SYMBOL_CALC_MODE_CFDLEVERAGE: 
         // а эти танцы с бубном для металлов и индексов
         lots = maxLoss / priceDiff / si.ContractSize();
         if (si.CurrencyProfit() != accountCurrency) {
            // валюту прибыли конвертируем в валюту депозита
            convertSymbol = si.CurrencyProfit() + accountCurrency + SymbolSuffix;
            double convert = SymbolInfoDouble(convertSymbol, SYMBOL_BID);
            if (convert != 0) {
               Print("Convert currency1 to ", convertSymbol, " convert bid: ", convert);            
               lots = lots / convert;
            }
            else {
               convertSymbol = accountCurrency + si.CurrencyProfit() + SymbolSuffix;
               convert = SymbolInfoDouble(convertSymbol, SYMBOL_ASK);
               Print("Convert currency2 to ", convertSymbol, " convert ask: ", convert);            
               lots = lots * convert;
            }
         }
         break;
      default:
         Print("ERROR need support calc for: ", EnumToString(cm));
         lots = 0;
         break;
   }
   double floorLots = MathFloor(lots / si.LotsStep()) * si.LotsStep();
   Print("raw lots: ", lots, ", floorLots: ", floorLots, " diff: ", NormalizeDouble(100*floorLots/lots, 2), "%");
   return floorLots;
}
 
Alexey Rassvetnyy:

買い逆指値注文と売り逆指値注文のツールチップの損益が正しく計算されない。

皆さん、MQ、記載されている不具合は修正されましたか?次のリリースで修正されることを期待していいのでしょうか?

不具合に関する元記事へのリンクです。

https://www.mql5.com/ru/forum/1111/page2670#comment_15391563

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2020.03.11
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Andrey Dik:

矢張り

それからトラブル。

 
ログブックに掲載されました。
2020.03.29 20:58:28.061 SymbolClone (EURUSD,M1) Unknown runtime error in 'SymbolClone.mq5' (1,1)

再生するには、Debugで起動し、ブレークポイントに 到達してください。その後、ターミナル(MEではない)でプロファイルを変更します - SHIFT+F5.

 
Alexey Rassvetnyy:

同じブローカーで取引すること。同じ問題に直面した。通貨と金(インデックスも同様)の違いは、SYMBOL_TRADE_MODEプロパティにあります。

通貨については SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_FOREX 、金属およびインデックスについては SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_CFDLEVERAGE とします。

このブローカーまたは SYMBOL_CALC_MODE_CFDLEVERAGE モードのプラットフォームは、プロパティ SYMBOL_TRADE_TICK_VALUE_PROFIT と SYMBOL_TRADE_TICK_VALUE_LOSS を正しく計算しないようです。

そのため、SYMBOL_CALC_MODE_CFDLEVERAGEモードでシンボルを計算するためには、余計なしゃがみをする必要があります。ドキュメントにある数式を使用します

利益:(close_price - open_price) * Contract_Size*Lots

.

このブローカーでは、口座通貨での始値、ストップロス価格、最大損失額に応じてポジション量を計算する機能の一例を示します。アルパリでは正常に動作していますが、他のブローカーではまだ確認していません。


もちろん、それは素晴らしいことです。しかし、標準のTICK VALUE関数を使うことができるのに、なぜ難しい方法をとらなければならないのでしょうか?

もしかしたら、開発者はまだこのエラーに注意を払うかもしれません。

アレクセイ・ラスヴェトニー

MQ社の代表の皆さん、この不具合は修正されましたか?次のリリースで修正される見込みはありますか?

不具合に関する元記事へのリンクです。

https://www.mql5.com/ru/forum/1111/page2670#comment_15391563

という質問に参加します。

以下は私の元記事ですhttps://www.mql5.com/ru/forum/351/page4#comment_15429966
Расчет TickValue и прибыли
Расчет TickValue и прибыли
  • 2010.09.26
  • www.mql5.com
На межбанке Equity постоянно меняется, если вы открыли и закрыли позицию с валютой прибыли не равной валюте счета (например, на USD-счете совершили сделку на USDJPY).
 
Andrey Khatimlianskii:

それからトラブル。

ミリ秒単位のタスクでは、エージェントで最適化する意味はなく、すべてを手動で行い、mqlでは行わない方がよい。したがって、制限はどのような場合でも非常に賢明であり、それが暗黙的であることが悪いだけである

 
Andrei Trukhanovich:

ミリ秒単位のタスクでは、エージェントで最適化する意味はありません。MQLではなく、すべて手動で行う方がよいのです。

クラウドを繋いで、1代理店あたり100~500~1000Kパックを渡しても?

たぶん、そうですね、ネットワークコストがかかると、せっかくの利益が台無しになってしまいます。

 
fxsaber:

mq5 - 正常です。mq4 - 壊れた。TypeToBytes_ExampleScript.mq4はこちらから 入手可能です。 拡張子がmq5に変更された場合のみコンパイルされます。

2372 - エラーは修正されました、ありがとうございます。