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

 
Interesting:

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回表示されてはならない。

//Reading information on current parameters of the trade account
RealTradeAllowed = TradeAllowed(); //TradeAllowed
RealTradeExpert  = TradeExpert();  //TradeExpert
//Checking the status change of the use possibility automatic trade
  if(varTradeAllowed!=RealTradeAllowed)
  //Processing the event TradeAllowed
  {
  OnTradeAllowed(RealTradeAllowed);
  //We write current status of the RealTradeAllowed in variable
  varTradeAllowed = RealTradeAllowed;
  }

4. その後、端末に何が起ころうとも、タイマーは常に真を返す。

追記

AccountInfoInteger(ACCOUNT_TRADE_EXPERT)の状況は、さらに混乱しています。端末やExpert Advisorの設定に関係なく、タイマーは復帰します。

必要なのか?

 
AM2:

私も似たような質問に興味があります。ポジションを開くのに十分な資金が口座にない場合、どうしたらよいですか?

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つ作るのがよいでしょう。

例えば、このような感じです。

//Function IsTradePermit
bool IsTradePermit(bool TardeAllowed,bool Connect,double FreeMargin)
{
//----------------------------------------------------------------------------//
//Work variables
bool Result;
//----------------------------------------------------------------------------//

//Тут мы проверяем разрешена или нет торговля

//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}

3.エキスパートアドバイザは、極端な場合(作業ができなくなった場合、または不要になった場合)にのみ、チャートから削除する必要があります。

このような状況は非常に極端であり、稀なことです。例えば、Expert Advisor に必要なファイルが見つからない場合や、Expert Advisor が解決できないエ ラーが発生した場合に使用します。

追記

EAの削除と配置は、複数のEAが異なるペアで取引しているが、それらを1つのEAが管理している場合にも有効です(EAを配置するペアと削除するペアを決定します)...。

 
Interesting:

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) - エキスパート/スクリプトのトレードの許可/禁止があります。

 
Swan:

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回表示されるのかは不明である)。

 
Swan さん、ありがとう ございます。全部直りました。すべてうまくいっているように見えますが...。
 

時間足チャートをスクロールし始めると、ある日付で日足チャートになり、また15分で1時間足や4時間足になります。ドキュメントに従って履歴を保存するファイルを削除 しましたが、何も変わりませんでした。

Документация по MQL5: Файловые операции / FileDelete
Документация по MQL5: Файловые операции / FileDelete
  • www.mql5.com
Файловые операции / FileDelete - Документация по MQL5
 
RomanIgorevi4:

時間足チャートをスクロールし始めると、ある日付で日足チャートになり、また15分で1時間足や4時間足になります。ドキュメントに従って履歴を保存するファイルを削除 しましたが、何も変わりませんでした。

それ以前は、サーバー上に日足の履歴しかないため(分足の履歴はない)、すべてのタイムフレームが日足で表示されます。
 

テスターの最適化アルゴリズム使用時にHistoryDealsTotal() に問題があることがわかりました。

通常のバックテストでは問題ありませんが、最適化セッションでは、EAの初期化段階で、HistoryDealsTotal() はEAの以前の実行からの取引 数を返します。その後、取引段階になると、HistoryDealsTotal() は再び0から始まる。

私は、以下のコードスニペットによってこの問題に遭遇しました。

    // constructor
    void MyClass() {
        _dealCnt = HistoryDealsTotal();  // this is causing trouble!
        _orderCnt = OrdersTotal();
        _positionCnt = PositionsTotal();
        _historyOrderCnt = HistoryOrdersTotal();
        ...
    }

この問題を回避する方法は、代わりに0で初期化することですが、それでも、私には、いくつかの内部変数が遅くリセットされているように見えるので、この問題に対する公式の回答があると嬉しいです。

ありがとうございました。

Documentation on MQL5: Trade Functions / HistoryDealsTotal
Documentation on MQL5: Trade Functions / HistoryDealsTotal
  • www.mql5.com
Trade Functions / HistoryDealsTotal - Documentation on MQL5
 

こんにちは、私の質問に答えてください。

mt5のダウンロードができません。インストールファイルをダウンロードし、途中で起動すると、止まったり、他のアクセスポイントに飛んだり、いろいろです。

-読み出しに失敗しました [12002]。

ターミナルやWindowsを何度再インストールしてもこの調子で、3日目には失敗してしまいます。

 

なぜこのコンストラクションは常に0を返すのでしょうか?

MqlDateTime dt; Print(dt.min);

とか、今何分なのかはどうしたらわかるのでしょうか?

MqlDateTime dt; if(dt.min)>33 ...