//Reading information on current parameters of the trade account
RealTradeAllowed = TradeAllowed(); //TradeAllowed
RealTradeExpert = TradeExpert(); //TradeExpert//Checking the status change of the use possibility automatic tradeif(varTradeAllowed!=RealTradeAllowed)
//Processing the event TradeAllowed
{
OnTradeAllowed(RealTradeAllowed);
//We write current status of the RealTradeAllowed in variable varTradeAllowed = RealTradeAllowed;
}
ACCOUNT_TRADE_ALLOWEDが 返す値は、サーバー側で生成されるということでよかったでしょうか。
つまり、トレーダー側(端末側)の操作では、この値を変更することはできないのですが...。
追記
しかし、ACCOUNT_TRADE_EXPERTの 変わり身の渋さは本当に不思議です...。
では、ターミナルメニューの「自動売買」ボタンと「自動売買を許可する」チェックボックスは何をするのでしょうか?
ピーピーエス
古いリリースでは、すべてが正しく、すべてが機能していたようですが、299では何が起こっているのか理解できません...。
ACCOUNT_TRADE_ALLOWEDと ACCOUNT_TRADE_EXPERTに掘ったのは誰で、なぜか?
開発者の方へ - 私がおかしくなったのか、それとも端末に「ドゥルバシカ」があるのか...。:)
しかも最新作ではなく、少なくとも294では...(誰がそこに入れたんだ?):(
ちょっとした実験
ターミナルリリース294を使い、AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)の戻り値を制御するExpert Advisorをチャート上に配置してみましょう。
同時に、Expert Advisor のパラメータとターミナル(「自動売買」ボタン)で自動売買を無効化します。
その結果、Expert Advisorのログには以下のような内容が含まれています。
ここでは、Expert Advisor が実行した動作(初期化中)とタイマーの ACCOUNT_TRADE_ALLOWED 値のチェックのログが表示されます。
我々は、色で強調されたすべてのシンボルに興味がある(これ以前は、シンボルリストは特別なクラスに読み込まれていた)。
1.タイマーが最初に返す結果は青色です(偽であることが予想されます)。
2.赤色は、タイマーによって返された次の結果を強調している、それは突然真になった(私はBARABACAが取引を許可したものに非常に興味が ある)。
3.変更に対する私のクラス(イベントOnEventTimer)の反応は緑色です。
ここでは、クラスは自動売買が可能であることを「理解」し、嬉々としてそれを伝えている(私はその楽観主義を共有できないが)。
しかも、そのメッセージは2回表示される(それまでは表示されていなかったが)。OnEventTimer イベントには、この可能性を排除するチェックが含まれているため、メッセージは2回表示されてはならない。
4. その後、端末に何が起ころうとも、タイマーは常に真を返す。
追記
AccountInfoInteger(ACCOUNT_TRADE_EXPERT)の状況は、さらに混乱しています。端末やExpert Advisorの設定に関係なく、タイマーは復帰します。
必要なのか?
私も似たような質問に興味があります。ポジションを開くのに十分な資金が口座にない場合、どうしたらよいですか?
1.Expert Advisorの取引を停止します。
2.ポジションの開設を禁止する。
3.チャートからExpert Advisorを削除します。
ポイント3は、ExpertRemoveで解決できます。2番目の項目は、この方法で解決しました。
1.売買の禁止は、プログラムによる設定ではなく、「自動売買」ボタンとチェックボックス「自動売買を許可する」を使用し、その後、ACCOUNT_TRADE_ALLOWEDとACCOUNT_TRADE_EXPERTにチェックを入れることで設定できると理解しています。
また、Expert Advisorに必要なパラメータを追加し、このパラメータを制御することでトレード操作を 禁止することができます(例えば、リアル口座でのトレードを禁止する)。
予備制御はExpert Advisorの初期化時に行われ、作業モードではOnTimer()またはOnTick()で処理される。
2.ポジションのオープン(クローズ)可能性の制御は、現在の状態:接続、自動売買の可能性、その他の条件(例えば、このシンボルに対して特定の操作を行う可能性の制御)を考慮して行う必要があります。
すべての条件を制御するためには、boolのような結果を持つ関数を1つ作るのがよいでしょう。
例えば、このような感じです。
3.エキスパートアドバイザは、極端な場合(作業ができなくなった場合、または不要になった場合)にのみ、チャートから削除する必要があります。
このような状況は非常に極端であり、稀なことです。例えば、Expert Advisor に必要なファイルが見つからない場合や、Expert Advisor が解決できないエ ラーが発生した場合に使用します。
追記
EAの削除と配置は、複数のEAが異なるペアで取引しているが、それらを1つのEAが管理している場合にも有効です(EAを配置するペアと削除するペアを決定します)...。
ACCOUNT_TRADE_ALLOWEDと ACCOUNT_TRADE_EXPERTを誰が、そして最も重要なことは、なぜ 掘り下げたのか?
開発者 - 私がすでにおかしくなっているのか、それともターミナルに「ドラバシキ」があるのか...。:)
しかも最新作ではなく、少なくとも294では...(誰がそこに入れたんだ?):(
ちょっとした実験
ターミナルリリース294を使い、AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)の戻り値を制御するExpert Advisorをチャート上に配置してみましょう。
同時に、Expert Advisor のパラメータとターミナル(「自動売買」ボタン)で自動売買を無効化します。
その結果、Expert Advisorのログには以下のような内容が含まれています。
ここでは、Expert Advisor が実行した動作(初期化中)とタイマーの ACCOUNT_TRADE_ALLOWED 値のチェックのログが表示されます。
我々は、色で強調されたすべてのシンボルに興味がある(これ以前は、シンボルリストは特別なクラスに読み込まれていた)。
1.タイマーが最初に返す結果は青色です(偽であることが期待されます)。
2.赤色は、タイマーによって返された次の結果を強調している、それは突然真になった(私はBARABACAが取引を許可したものに非常に興味が ある)。
3.変更に対する私のクラス(イベントOnEventTimer)の反応は緑色です。
このクラスは、自動売買が可能であることを「理解」し、嬉々としてそれを伝えている(私はその楽観主義を共有していないのだが)。
しかも、そのメッセージは2回表示される(それまでは表示されていなかったが)。OnEventTimer イベントには、この可能性を排除するチェックが含まれているため、メッセージは2回表示されてはならない。
4. その後、端末に何が起ころうとも、タイマーは常に真を返す。
追記
AccountInfoInteger(ACCOUNT_TRADE_EXPERT)の状況は、さらに混乱しています。端末やExpert Advisorの設定に関係なく、タイマーは復帰します。
必要なのか?
なんか変だな、ACCOUNT_TRADE_ALLOWEDとACCOUNT_TRADE_EXPERTは証券会社で取引するための権限なんだけど。
ボタン「AutoTrade」。- TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)です。
MQL5InfoInteger(MQL5_TRADE_ALLOWED) - エキスパート/スクリプトのトレードの許可/禁止があります。
ACCOUNT_TRADE_ALLOWEDとACCOUNT_TRADE_EXPERTがDC内で取引することを許可されているのですが、何か変なことが起きています。
ボタン「AutoTrade」。- TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)です。
MQL5InfoInteger(MQL5_TRADE_ALLOWED) - エキスパート/スクリプトの取引許可/禁止もあります。
MQL5InfoInteger(MQL5_TRADE_ALLOWED) は知っていますが、Expert Advisor で正常に動作し、通常監視されています。MQL5_DLLS_ALLOWED も通常処理されています。
このように、私の理解では
TERMINAL_DLLS_ALLOWEDとTERMINAL_TRADE_ALLOWEDは端末レベルのパーミッションです。
MQL5_DLLS_ALLOWEDおよびMQL5_TRADE_ALLOWED - エキスパートレベルのパーミッションです。
ACCOUNT_TRADE_ALLOWEDおよびACCOUNT_TRADE_EXPERT - サーバ・レベルでのパーミッションです。
そして、これがfalseをtrueに変更するサーバーであると仮定する(ただし、なぜこのメッセージが2回表示されるのかは不明である)。
時間足チャートをスクロールし始めると、ある日付で日足チャートになり、また15分で1時間足や4時間足になります。ドキュメントに従って履歴を保存するファイルを削除 しましたが、何も変わりませんでした。
時間足チャートをスクロールし始めると、ある日付で日足チャートになり、また15分で1時間足や4時間足になります。ドキュメントに従って履歴を保存するファイルを削除 しましたが、何も変わりませんでした。
テスターの最適化アルゴリズム使用時にHistoryDealsTotal() に問題があることがわかりました。
通常のバックテストでは問題ありませんが、最適化セッションでは、EAの初期化段階で、HistoryDealsTotal() はEAの以前の実行からの取引 数を返します。その後、取引段階になると、HistoryDealsTotal() は再び0から始まる。
私は、以下のコードスニペットによってこの問題に遭遇しました。
この問題を回避する方法は、代わりに0で初期化することですが、それでも、私には、いくつかの内部変数が遅くリセットされているように見えるので、この問題に対する公式の回答があると嬉しいです。
ありがとうございました。
こんにちは、私の質問に答えてください。
mt5のダウンロードができません。インストールファイルをダウンロードし、途中で起動すると、止まったり、他のアクセスポイントに飛んだり、いろいろです。
-読み出しに失敗しました [12002]。
ターミナルやWindowsを何度再インストールしてもこの調子で、3日目には失敗してしまいます。
なぜこのコンストラクションは常に0を返すのでしょうか?
とか、今何分なのかはどうしたらわかるのでしょうか?