自動売買選手権2007:エキスパートにありがちなミス - ページ 6 1234567891011 新しいコメント Renat Fatkhullin 2007.09.08 13:05 #51 エラーメッセージ"OrderModify error 1" は、不正確なプログラミングのために、OrderModify が変更されていないパラメータで呼び出されたことを意味します。 OrderModify を呼び出す前に、新しいデータで更新を呼び出しているのか、それとも既存の値を設定しようとしているのかを確認してください。 Сергей 2007.09.08 14:03 #52 あなたの専門家のテストが終了しました。専門家によるテストレポート。 ----------------------- 2007.09.08 17:47 EURUSDの場合:60 17:38:34 2007.01.04 00:01 stalker_2 EURUSD,H4:OrderModify error 1 17:38:34 2007.01.04 00:02 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:03 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:04 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:04 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1 17:38:34 2007.01.04 00:08 stalker_2 EURUSD,H4: OrderModify error 1 0分49秒 エラー数:20 ----------------------- Expert Advisorのコードを修正し、新しいバージョンをプロフィールページにアップロードしてください。 あなたのロボットがおかしくなってしまったのでしょう、たくさんの参加者がいるようです :-) すでにExpert Advisorが混ざってしまっています。コメントに「stalker_2」と書かず、1時間足チャートで動作するExpert Advisorがあるのですが、これはどうなのでしょうか?また、OrderModifyコマンドは全く使用しません。 Automated Trading Championship 2007: Better NN EA development Once again, about the Yuriy Zaytsev 2007.09.08 18:38 #53 Renat: エラーメッセージ "OrderModify error 1 "は、不正確なプログラミングによる、変更されていないパラメータでOrderModifyを呼び出すことを意味します。 OrderModifyを呼び出す前に、新しいデータで更新を呼び出しているのか、すでに存在する値を設定しようとしているのか確認してください。 もしかして、建築のこと? if ( RefreshRates() == true ) { .... OrderModify(Ticket,...) } しらみつぶしに ループ内で注文が変更されるたびにResresh()する 35pipsの利益を得た後のブレークイーブン 外部変数、最小値 FirstTralStopSell = 35; 50pips到達後のトロール なぜこのようなエラーが発生するのか、よくわかりません。 OrderModifyコマンドを発行した後、テストシステムは価格が50pips以上戻るような方法でリクオートを エミュレートしている可能性があります。 が、では、どうすればそのような事態を避けられるのか? しかも、私のログは、テストシステムから出力されるログファイルに表示されないのです。 if (err != 0 ) { if ( ECHOerror == 1 ) Print("Error("+err+") Open="+OrderOpenPrice()+""+OrderStopLoss()+" modifying SL.OrderStopLoss()+" )"+(Ask+Point*FirstTralStopSell)+" TP "+(0)+""+msgErrors(err)); } void TralYZ(int lLockTralSell, int lLockTralBuy) { int err; int cnt=OrdersTotal(); int LocalDinamicTrallSELL; int LocalDinamicTrallBUY; int FirstTralStopSell; int FirstTralStopBuy; LocalDinamicTrallSELL = oDinamicTrallSELL ; // значения по умолчанию LocalDinamicTrallBUY = oDinamicTrallBUY ; FirstTralStopSell = oFirstTralStopSell; // первый безуюыток FirstTralStopBuy = oFirstTralStopBuy; while(cnt>=0) { RefreshRates(); OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); Sleep(10000); int Ticket=OrderTicket(); int IDorder; IDorder = FindID(Ticket); if (OrderSymbol() == Symbol() ) { if (OrderType()==OP_SELL && lLockTralSell == 0 ) { if ( OrderMagicNumber() == MAGIC3 ) FirstTralStopSell = d3FirstTralStopBuy; if ( OrderMagicNumber() == MAGIC2 ) FirstTralStopSell = d2FirstTralStopBuy; if ( OrderMagicNumber() == MAGIC1 ) FirstTralStopSell = d1FirstTralStopBuy; if ( OrderMagicNumber() == cMAGIC3 ) FirstTralStopSell = c3FirstTralStopSell; if ( OrderMagicNumber() == cMAGIC2 ) FirstTralStopSell = c2FirstTralStopSell; if ( OrderMagicNumber() == cMAGIC1 ) FirstTralStopSell = c1FirstTralStopSell; if ( ( OrderStopLoss() == 0 && ( OrderOpenPrice()-Ask )>=(FirstTralStopSell*Point) + Ask-Bid ) || ( OrderStopLoss() > OrderOpenPrice() && ( OrderOpenPrice()-Ask )>=(FirstTralStopSell*Point) + Ask-Bid ) ) { if ( DEBUG == 1 ) Print( "1 SL="+OrderStopLoss()+" > OP="+OrderOpenPrice() +" && ( OP"+OrderOpenPrice()+" - Ask"+Ask+") "+( OrderOpenPrice()-Ask ) +" >= ( "+FirstTralStopSell+" * "+Point+") "+Ask+" - "+Bid+" ="+(Ask-Bid)); lotlib_PrevLots = OrderLots(); lotlib_PrevProfit = OrderProfit(); OrderModify(Ticket,OrderOpenPrice(),Ask+(Point*FirstTralStopSell) , 0 ,0,Purple); Sleep( 10000 ); err=GetLastError(); if (err != 0 ) { if ( ECHOerror == 1 ) Print("Error("+err+") Open="+OrderOpenPrice()+" "+OrderStopLoss()+" modifying SL: "+(Ask+Point*FirstTralStopSell)+" TP "+(0)+" "+msgErrors(err)); } } Automated Trading Championship 2007: 初心者の方からの質問 MQL4 MT4 MetaTrader MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 削除済み 2007.09.08 18:42 #54 同じExpertコードを3回チェックしましたが、最初の2回はエラーがなく、3回目に突然エラーが発生し、Expertコードを変更しなければならなくなりました。 Yuriy Zaytsev 2007.09.08 18:54 #55 Renat: エラーメッセージ"OrderModify error 1 "は、OrderModifyが未変更のパラメータで呼び出されたことを意味し、これは不正確なプログラミングに起因します。 OrderModify を呼び出す前に、新しいデータで更新を呼び出しているのか、それとも既存の値を設定しようとしているのかを確認してください。 構成要素を紹介した後 if ( RefreshRates() == true ) OrderModify(Ticket,OrderOpenPrice(),Bid-Point*LocalDinamicTrallBUY , 0,0,Purple); ターミナルバージョン208は、テストでは全く動作しません。 RefreshRates() == true ? LocalDinamicTrallBUY = 50; 入門 if ( OrderStopLoss() > OrderOpenPrice() && ( Bid - OrderStopLoss() ) >= (LocalDinamicTrallBUY*Point) + Ask-Bid ) { lotlib_PrevLots = OrderLots(); lotlib_PrevProfit = OrderProfit(); if ( RefreshRates() == true ) OrderModify(Ticket,OrderOpenPrice(),Bid-Point*LocalDinamicTrallBUY , 0,0,Purple); 微妙なところでしょうね...についてはわかりません。 Renat Fatkhullin 2007.09.08 18:57 #56 YuraZ: レナート エラーメッセージ "OrderModify error 1 "は、OrderModifyが不正確なプログラミングのために、変更されていないパラメータで呼び出されたことを意味します。 OrderModify を呼び出す前に、新しいデータで更新を呼び出しているのか、それとも既存の値を設定しようとしているのかを確認してください。 もしかして、建築のこと? これは、OrderModifyにすでにあったのと同じStopLossの値を設定しようとしていることを意味します。例えば、StopLossが1.3020で、再度1.3020に設定しようとした場合、OrderModifyはコード1を返します。これは、OrderModifyのドキュメントに 明示されています。 bool OrderModify() int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE) 以前にオープンしたポジションまたは保留中の注文のパラメータを変更します。 関数が正常に完了した場合は TRUE を返します。 関数が失敗した場合は FALSE を返します。 エラー情報を取得するにはGetLastError() を呼び出す必要があります。 注:建値と有効期限は、保留中の注文にのみ変更可能です。 変更されていない値が関数へのパラメータとして渡された場合、エラー 1(ERR_NO_RESULT)が発生する。 一部の取引サーバーでは、保留中の注文の有効期限を設定することがあります。この場合、expiration パラメータに0以外の値を設定しようとすると、エラー 147 (ERR_TRADE_EXPIRATION_DENIED) が発生する。 [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 [ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. すべて閉じる」/「開く」ツール Yuriy Zaytsev 2007.09.08 18:59 #57 Renat: YuraZ: レナート エラーメッセージ "OrderModify error 1 "は、OrderModifyが変更されていないパラメータで呼び出されたことを意味し、これは不正確なプログラミングに起因するものである。 OrderModify を呼び出す前に、新しいデータで更新を呼び出しているか、すでに存在する値を設定しようとしているかどうかを確認します。 もしかして、建築のこと? つまり、OrderModifyに既にあるStopLossの値と同じものを設定しようとしているのです。例えば、StopLossが1.3020で、再度1.3020に設定しようとした場合、OrderModifyはコード1を返します。これは、OrderModifyのドキュメントに 明示されています。 bool OrderModify() int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE) 既にオープンしているポジションや未決済の注文のパラメータを変更します。 この関数が正常に終了した場合は、TRUE を返します。関数が失敗した場合は FALSE を返します。GetLastError()を呼び出し、エラーに関する情報を取得する。 注:建値と有効期限は、保留中の注文にのみ変更可能です。 変更されていない値が関数へのパラメータとして渡された場合、エラー 1(ERR_NO_RESULT)が発生する。 一部の取引サーバーでは、保留中の注文の有効期限を設定することがあります。この場合、expiration パラメータに0以外の値を設定しようとすると、エラー 147 (ERR_TRADE_EXPIRATION_DENIED) が発生する。 Renat ありがとうございます。 トロールの入力条件を追加しました。 && OrderStopLoss() != Ask+Point*LocalDinamicTrallSELL if ( OrderStopLoss() < OrderOpenPrice() && ( OrderStopLoss()-Ask )>=(LocalDinamicTrallSELL*Point) + Ask-Bid && OrderStopLoss() != Ask+Point*LocalDinamicTrallSELL ) { if ( DEBUG == 1 ) Print( "2 SL="+OrderStopLoss()+" < OP="+OrderOpenPrice() +" && ( OP"+OrderOpenPrice()+" - Ask"+Ask+") "+( OrderOpenPrice()-Ask ) +" >= ( "+LocalDinamicTrallSELL+" * "+Point+") "+Ask+" - "+Bid+" ="+(Ask-Bid)); lotlib_PrevLots = OrderLots(); lotlib_PrevProfit = OrderProfit(); if ( RefreshRates() == true ) OrderModify(Ticket,OrderOpenPrice(),Ask+Point*LocalDinamicTrallSELL , 0,0,Purple); err=GetLastError(); if (err != 0 ) { if ( ECHOerror == 1 ) Print("Error("+err+") Open="+OrderOpenPrice()+" "+OrderStopLoss()+" modifying SL: "+(Ask+Point*LocalDinamicTrallSELL)+" TP "+(0)+" "+msgErrors(err)); } } しかし、テスト中のログにはエラーはありませんでした- キモチワルイ Renat Fatkhullin 2007.09.08 19:03 #58 pilgrim: あなたのロボットは狂ってしまったのだと思います、多くの参加者がいると思います :-) すでにEAを混乱させ始めているのです。私のEAはコメントに「stalker_2」と書かず、1時間足チャートで動作しています。また、OrderModify コマンドは全く使用しません。 自動テスト者のスクリプトが他人のログを取り込んでしまった - は既に修正されています。 削除済み 2007.09.08 19:17 #59 つまり、2回ほどテストに合格し、登録されたとのメールが来たのですが...。と表示され、3回目には「コードにエラーが あります」と表示されました...。なぜ、一度プロファイルにアップロードしたエキスパートのコードを変更しなければならないのでしょうか? Renat Fatkhullin 2007.09.08 19:37 #60 folver: つまり、2回、指数関数がテストに合格し、登録されたとの電子メールを受け取りました。3回目にはコードにエラーがあると表示されます。プロファイルにアップロードしたExpert Advisorのコードを変更する必要があるのでしょうか? 結果から判断すると、Expert Advisorはマージンコールをキャッチしています。まだ何も言えません。明日の朝には次のチェックが完了し、結果を確認する予定です。 1234567891011 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
OrderModify を呼び出す前に、新しいデータで更新を呼び出しているのか、それとも既存の値を設定しようとしているのかを確認してください。
-----------------------
2007.09.08 17:47
EURUSDの場合:60
17:38:34 2007.01.04 00:01 stalker_2 EURUSD,H4:OrderModify error 1
17:38:34 2007.01.04 00:02 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:03 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:04 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:04 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:06 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:07 stalker_2 EURUSD,H4: OrderModify error 1
17:38:34 2007.01.04 00:08 stalker_2 EURUSD,H4: OrderModify error 1
0分49秒
エラー数:20
-----------------------
Expert Advisorのコードを修正し、新しいバージョンをプロフィールページにアップロードしてください。
あなたのロボットがおかしくなってしまったのでしょう、たくさんの参加者がいるようです :-) すでにExpert Advisorが混ざってしまっています。コメントに「stalker_2」と書かず、1時間足チャートで動作するExpert Advisorがあるのですが、これはどうなのでしょうか?また、OrderModifyコマンドは全く使用しません。
エラーメッセージ "OrderModify error 1 "は、不正確なプログラミングによる、変更されていないパラメータでOrderModifyを呼び出すことを意味します。 OrderModifyを呼び出す前に、新しいデータで更新を呼び出しているのか、すでに存在する値を設定しようとしているのか確認してください。
もしかして、建築のこと?
if ( RefreshRates() == true )
{
....
OrderModify(Ticket,...)
}
しらみつぶしに
ループ内で注文が変更されるたびにResresh()する
35pipsの利益を得た後のブレークイーブン
外部変数、最小値
FirstTralStopSell = 35;
50pips到達後のトロール
なぜこのようなエラーが発生するのか、よくわかりません。
OrderModifyコマンドを発行した後、テストシステムは価格が50pips以上戻るような方法でリクオートを エミュレートしている可能性があります。
が、では、どうすればそのような事態を避けられるのか?
しかも、私のログは、テストシステムから出力されるログファイルに表示されないのです。
if (err != 0 )
{
if ( ECHOerror == 1 )
Print("Error("+err+") Open="+OrderOpenPrice()+""+OrderStopLoss()+" modifying SL.OrderStopLoss()+" )"+(Ask+Point*FirstTralStopSell)+" TP "+(0)+""+msgErrors(err));
}
エラーメッセージ"OrderModify error 1 "は、OrderModifyが未変更のパラメータで呼び出されたことを意味し、これは不正確なプログラミングに起因します。
OrderModify を呼び出す前に、新しいデータで更新を呼び出しているのか、それとも既存の値を設定しようとしているのかを確認してください。
構成要素を紹介した後
ターミナルバージョン208は、テストでは全く動作しません。
RefreshRates() == true ?
LocalDinamicTrallBUY = 50;
入門
微妙なところでしょうね...についてはわかりません。
エラーメッセージ "OrderModify error 1 "は、OrderModifyが不正確なプログラミングのために、変更されていないパラメータで呼び出されたことを意味します。
OrderModify を呼び出す前に、新しいデータで更新を呼び出しているのか、それとも既存の値を設定しようとしているのかを確認してください。
もしかして、建築のこと?
これは、OrderModifyにすでにあったのと同じStopLossの値を設定しようとしていることを意味します。例えば、StopLossが1.3020で、再度1.3020に設定しようとした場合、OrderModifyはコード1を返します。これは、OrderModifyのドキュメントに 明示されています。
注:建値と有効期限は、保留中の注文にのみ変更可能です。
変更されていない値が関数へのパラメータとして渡された場合、エラー 1(ERR_NO_RESULT)が発生する。
一部の取引サーバーでは、保留中の注文の有効期限を設定することがあります。この場合、expiration パラメータに0以外の値を設定しようとすると、エラー 147 (ERR_TRADE_EXPIRATION_DENIED) が発生する。
エラーメッセージ "OrderModify error 1 "は、OrderModifyが変更されていないパラメータで呼び出されたことを意味し、これは不正確なプログラミングに起因するものである。
OrderModify を呼び出す前に、新しいデータで更新を呼び出しているか、すでに存在する値を設定しようとしているかどうかを確認します。
もしかして、建築のこと?
つまり、OrderModifyに既にあるStopLossの値と同じものを設定しようとしているのです。例えば、StopLossが1.3020で、再度1.3020に設定しようとした場合、OrderModifyはコード1を返します。これは、OrderModifyのドキュメントに 明示されています。
注:建値と有効期限は、保留中の注文にのみ変更可能です。
変更されていない値が関数へのパラメータとして渡された場合、エラー 1(ERR_NO_RESULT)が発生する。
一部の取引サーバーでは、保留中の注文の有効期限を設定することがあります。この場合、expiration パラメータに0以外の値を設定しようとすると、エラー 147 (ERR_TRADE_EXPIRATION_DENIED) が発生する。
Renat ありがとうございます。
トロールの入力条件を追加しました。
&& OrderStopLoss() != Ask+Point*LocalDinamicTrallSELL
しかし、テスト中のログにはエラーはありませんでした- キモチワルイ
あなたのロボットは狂ってしまったのだと思います、多くの参加者がいると思います :-) すでにEAを混乱させ始めているのです。私のEAはコメントに「stalker_2」と書かず、1時間足チャートで動作しています。また、OrderModify コマンドは全く使用しません。
つまり、2回、指数関数がテストに合格し、登録されたとの電子メールを受け取りました。3回目にはコードにエラーがあると表示されます。プロファイルにアップロードしたExpert Advisorのコードを変更する必要があるのでしょうか?