EAのバージョンを更新しようとすると、エラーが発生する。
同じEAがストラテジーテスターにあります。
MT4用のEAも同時に書いていますが、そちらは問題ありません。4と5のEAのコードは同じで、唯一の違いはインクルードファイルです(4と5で異なる)。
前回、このEAをアップデートしたのは1月で、すべてOKでした。
ソフトウェアバージョン - MetaTrader 5 x64 build 2025 開始 (MetaQuotes Software Corp.)
- Terminal Windows 10 (build 14393) x64, IE 11, UAC, Intel Celeron N2815 @ 1.86GHz, Memory: 1866 / 3967 Mb, Disk: 5 / 35 Gb, GMT+3
バカのふりして1ドルの入金や100500ロットを入れて、取引が あるかどうか見てみましょう。そして、こんなパラメータを設定するのはバカだけだという注意喚起が行われるのでしょうか。
同じ問題です。試してみましたが、役に立ちません)。4月13日から更新ができない。私はすべてとすべてをチェックする場合 - 私はすべてのシンボルに1つだけ刻まれた "treheは取引業務を行っていない "を取得します。すべてをチェックしないと、「ポジションを開くのに十分な資本がありません」というエラーが出ます。MT4用も、TS作者用も、問題なく更新されています。
私は、最小ロットが2000で、残高が10000であり、明らかにポジションを開くのに十分な資金がないことを画像で見ることができます。とにかくチェックをパスしない。
そんなときはどうすればいいのか。
もちろん、取引はしない。また、アラートは何を想定しているのでしょうか?OnInitでロットサイズがSYMBOL_VOLUME_MINと SYMBOL_VOLUME_MAXの範囲にない場合、初期化エラーINIT_PARAMETERS_INCORRECTが発生します。
もちろん、取引はしない。また、アラートは何を想定しているのでしょうか?OnInitでロットサイズがSYMBOL_VOLUME_MINと SYMBOL_VOLUME_MAXの範囲にない場合、初期化エラーINIT_PARAMETERS_INCORRECTが発生します。
当時、自動チェックの後にモデレーターがチェックするというのが、ほぼ同じだったように記憶しています。不正確なパラメータを指定した場合、OnInitもコードINIT_PARAMETERS_INCORRECTで終了します。また、オートチェックでは、取引操作がなかったという同じエラーが発生しました。そこで、司会者から、このコードでOnInit()を終了させるのではなく、Alertを発行するようにとのアドバイスがありました。
もちろん、取引はしない。また、アラートはどのようなものなのでしょうか?OnInitでロットサイズがSYMBOL_VOLUME_MINと SYMBOL_VOLUME_MAXの範囲にない場合、初期化エラーINIT_PARAMETERS_INCORRECTが発生します。
バカのふりをするのはとても大変なことだと思いますが、このスキルが役に立つこともあるのです。もう一度試してみてください。Expert Advisorを設定し、口座には1ドル、ロットを100500に設定し、待つだけです。1日、2日、3日...と待つのです。となると、「何のためにお金を払ったのか」と恨むようになる。なんでこんなの効かないんだ!」と言っても誰も何も言わないし、「バカじゃないの...」と言いたくもない。そのような預金では、外国為替市場で働くことはできません。ロット100500なんてつけるのはバカだけだ」...。そういうことなんです。
おそらく月に一度、誰かがその話を持ち出すのでしょう。ずっと続いているんです。
取引(実戦)では残高の大きさだけでなく、ロットサイズも変わることがあるということです。
また、テスト中は入金サイズ(1~10000000)やロットサイズ(1000000~0.01)を変更することができます。
したがって、これらのチェックはOnInitで一度だけでなく、ループ内(例えばOnTick)で恒久的に行う必要があります。
警告(メッセージまたはアラートの印刷)は、ログのオーバーフローを避けるため、一度だけ印刷する必要があります。
非常にシンプルなコードでも検証をパスすることはできません。おっしゃるような条件を満たしているようです。
void OnTick() { ENUM_POSITION_TYPE PosType=POSITION_TYPE_SELL; MqlTradeRequest request; MqlTradeResult result; MqlTradeCheckResult check; ZeroMemory(request); ZeroMemory(result); ZeroMemory(check); long digit; double point,Bid; SymbolInfoDouble(_Symbol,SYMBOL_BID,Bid); request.type = ORDER_TYPE_SELL; request.price = Bid; request.action = TRADE_ACTION_DEAL; request.symbol = _Symbol; request.volume = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN); request.sl=0; request.tp=0; request.deviation=10; request.magic=55555; request.comment=NULL; request.type_filling=0; if(PositionsTotal()==0 &&CheckMoneyForTrade(_Symbol,SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN),ORDER_TYPE_SELL)==true ){ OrderSend(request,result); }else{ ExtExpert.Deinit(); return; } } bool CheckMoneyForTrade(string symb,double lots,ENUM_ORDER_TYPE type) { //--- получим цену открытия MqlTick mqltick; SymbolInfoTick(symb,mqltick); double price=mqltick.ask; if(type==ORDER_TYPE_SELL) price=mqltick.bid; //--- значения необходимой и свободной маржи double margin,free_margin=AccountInfoDouble(ACCOUNT_MARGIN_FREE); //--- вызовем функцию проверки if(!OrderCalcMargin(type,symb,lots,price,margin)) { //--- что-то пошло не так, сообщим и вернем false Print("Error in ",__FUNCTION__," code=",GetLastError()); return(false); } //--- если не хватает средств на проведение операции if(margin>free_margin) { //--- сообщим об ошибке и вернем false Print("Not enough money for ",EnumToString(type)," ",lots," ",symb," Error code=",GetLastError()); return(false); } //--- проверка прошла успешно return(true); }マネーチェックあり-取引業務がない、チェックなし-資金が ない
おそらく月に一度、誰かがその話を持ち出すのでしょう。ずっと続いているんです。
取引(実戦)では残高の大きさだけでなく、ロットサイズも変わることがあるということです。
また、テスト中は入金サイズ(1~10000000)やロットサイズ(1000000~0.01)を変更することができます。
したがって、これらのチェックはOnInitで一度だけでなく、ループ内(例えばOnTick)で恒久的に行う必要があります。
警告(印刷メッセージまたはアラート)は、ログのオーバーフローを避けるため、一度だけ出力する必要があります。
これらのチェック(LotMin, LotMax, LotNormalizeStep, check balance, OrderCheck)は、ポジションがオープン されるたびに実行されます。また、OnInit時のみロットのチェックを行う。OnInitで残高を確認するロジックがわからない。
追記: Alertではバリデータエラーから逃れられない(((((( ;゚Д゚)))))
これらのチェック(LotMin, LotMax, LotNormalizeStep, check balance, OrderCheck)は、ポジションがオープン される度に実行されます。また、onInitはロットをチェックするだけです。OnInitで残高を確認するロジックがわからない。
追記:バリデータエラーからAlertが保存されない(((((( ;゚Д゚)))))
Validatorにエラーはありません :)
バリデータは、提供されたコードで次のように表示するだけです。
- あたまごなし
- エラーハンドリングがない
バリデーターにエラーはありません :)
バリデータは、提供されたコードを表示するだけです。
- あたまごなし
- エラーハンドリングがない
))
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
EAのバージョンを更新しようとすると、エラーが発生する。
同じEAがストラテジーテスターにあります。
MT4用のEAも同時に書いていますが、そちらは問題ありません。4と5のEAのコードは同じで、唯一の違いはインクルードファイルです(4と5で異なる)。
前回、このEAをアップデートしたのは1月で、すべてOKでした。
ソフトウェアバージョン - MetaTrader 5 x64 build 2025 開始 (MetaQuotes Software Corp.)
- Terminal Windows 10 (build 14393) x64, IE 11, UAC, Intel Celeron N2815 @ 1.86GHz, Memory: 1866 / 3967 Mb, Disk: 5 / 35 Gb, GMT+3