bool CheckTradingPermission()
{
//--- Для режима реального времениif(IsRealtime())
{
//--- Проверка соединения с серверомif(!TerminalInfoInteger(TERMINAL_CONNECTED))
return(false);
//--- Разрешение на торговлю на уровне данной запущенной программыif(!MQLInfoInteger(MQL_TRADE_ALLOWED))
return(false);
//--- Разрешение на торговлю на уровне терминалаif(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
return(false);
//--- Разрешение на торговлю для текущего счетаif(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
return(false);
//--- Разрешение на автоматическую торговлю для текущего счетаif(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
return(false);
}
//---return(true);
}
Опубликовал статью ZigZag всему голова (Часть II): Примеры получения, обработки и отображения данных В первой части был описан модифицированный индикатор ZigZag и класс для получения данных индикаторов такого типа. Теперь мы покажем как создать индикаторы на основе этих инструментов, а также напишем эксперта для тестов, который будет заключать...
まあ、STLは一長一短なんですけどね。ここでは、具体的な内容に大いに注目する必要があります。
ソフトとウォームを混同している
STLがどうのこうのという問題ではありません。そこは自分で考えよう...。(無い袖は振れぬ)
最も簡単な方法は、ベースクラスまたはインターフェイスで抽象的なメソッドを使用して、可能なすべての機能を実装し、子孫で - 実装または=delteのいずれかです。
この場合、ベースクラスのメソッドに同じ型のポインタまたは参照を渡す必要があります。
仮想テーブルという弊害はありますが、高価なdynamic_castの分岐がどこにもないようなアーキテクチャにしたほうがよいでしょう。
あなたが提案した方法は、以前に実装され、また同じバグに掛かっています: https://www.mql5.com/ru/forum/1111/page2648#comment_15015191
ポインタ/クラスパラメータに対して暗黙の型変換が行われた場合に、リロードされた関数を呼び出す際の優先順位にバグがあります。
C++ではすべてOKですが、MQLではコンパイルエラー「ambiguous call to overloaded function」
回避のバリエーションが一つ上に提案されていますが、大きくて不便ですし、何十もの似たような関数に使う気にはなれません。
もしかしたら、もっとシンプルなものがあるのでは?
開発者の方、アドバイスをお願いします。バグを 修正する予定はありますか?それともアーキテクチャ的に不可能なのでしょうか?
テンプレート関数内部では、明示的な型変換で 渡されたポインタはクラスと同じように動作し、それに応じてコンパイル時エラーが発生します。
頭が悪い、簡単な問題も解けない。以下のEA起動設定中は、取引が禁止 されていることを理解したいのですが。
このチェックはうまくいきません。
OrderCheckは赤信号。アドバイスをお願いします。
ANATOLI KAZHARSKI コード
ありがとうございます、MQL_TRADE_ALLOWEDには気がつきませんでした。
頭が悪い、簡単な問題も解けない。以下のEA起動設定中は、取引が禁止 されていることを理解したいのですが。
このチェックはうまくいきません。
OrderCheckは赤信号。アドバイスをお願いします。
おそらく、テンプレートクラス生成キャッシュの働きが原因だと思われます。
バグ MT5(build 2340)は同じコードを2回使用します:1回目-コンパイル成功、2回目-コンパイルエラー。
テンプレート関数 "void run(const T &ff)" の参照による転送を値による転送"void run(const T ff)"に置き換えると、エラーが 解消されます。
バグ MT5(build 2340) テンプレート関数のテンプレートパラメーターの内部クラスにアクセスしようとすると、コンパイルエラーに なる。