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

 

ごあいさつ

MT5 Optimizer - CustomMaxは正しく計算されますか?

MT5 5.00 build 722でオプティマイザー(遺伝的最適化)を実行していますが、偶然にも最適化 結果が予期せぬ方法で計算されていることに気づきました。

Expert Advisor は OnTester()を返します。

Profit * Trades * (1/(MaxEquityDDPercent+1)) * RecoveryFactor

どこで

   double Profit = TesterStatistics(STAT_PROFIT);

   double Trades = TesterStatistics(STAT_TRADES);

   double MaxEquityDDPercent = TesterStatistics(STAT_EQUITY_DDREL_PERCENT);

   double RecoveryFactor = MathAbs(TesterStatistics(STAT_RECOVERY_FACTOR));

利益や回収率が小さいと結果も小さくなると予想されましたが、そうではありませんでした。スクリーンショットをご覧ください。


私が正しく理解していないことなのでしょうか?

ファイル:
 
MetaDriver:

では、動かしてみましょう。

私などは、チャートがピクピクと二重になって しまうのが嫌で、もっとスムーズに正しい位置に移動させたいと思ったのですが......。

// 面白いことに、ChartRedraw()を使用すると、使用しない場合よりも2倍高速に動作します。同時に、ジャークも多くなります。

ChartNavigate()には、まだ問題があります。いつかは直るのでしょうか?それとも、バグとはみなされないのでしょうか?

サービスデスクにこのトピックの投稿がすでにありますか?それとも、さらに追加で?))

 

実行エラー:スタックオーバーフロー

class A {
        static  bool OrderSend( const MqlTradeRequest& request, MqlTradeResult& result, bool async_mode = false )
	void function();
};
void A::function()
{...
	OrderSend(...) // ошибка выполнения возникает здесь
	A::OrderSend(...) // не помогает
...}

OrderSendを 他の名前で置き換えると、すべてうまくいきます。

スタティックがあってもエラーにならない

A::OrderSend()の呼び出し - エラーの影響を受けません。

 
A100:

スタックオーバーフロー実行エラー

OrderSendを他の名前に置き換えても問題ありません


コンテキストを解決する必要があるため

::オーダー送信

 

私は ::OrderSend ではなく、A::OrderSend()を呼んでいるようです。

動くはず

 
A100:

私が呼んでいるのは ::OrderSend ではなく、A::OrderSend() だと思います。

どのラインを考えているのですか?

爾今

void A::function()
{...
	OrderSend(...) // ошибка выполнения возникает здесь
вызывается именно ваша A::OrderSend
ターミナルを呼び出す場合は、Ordersend の 前に :: を実行します。
 
ありがとうございます。理由がわかりましたので、質問を撤回させていただきます。
 
A100:
ありがとうございます、理由がわかりました - 質問を削除します - 自分でループさせました

Ordersendでは: なしで自称していたそうですね。

授業でPrintとCommentを再定義したときに、一気に巻き込まれました。)

 
sergeev:

Ordersendでは : なしで自称していたそうですね。

A::OrderSend は3つのパラメータを持っていますが、後者がデフォルトで、コンパイラはパラメータの数で ::OrderSend と区別することはできません。
削除済み  
フォーラムで投票を作成する方法を教えてください。