記事"マーケットでの公開前にトレードロボットに行うべき検査"についてのディスカッション - ページ 5 123456789101112...26 新しいコメント Artyom Trishkin 2017.11.07 06:33 #41 Oleksii Chepurnyi: しかし、それでは取引を逃す可能性がある......。 市場のことだ。だからミスはあってはならない。あるいは、彼らの適切な処理があるはずだ。 Oleksii Chepurnyi 2017.11.07 07:04 #42 Artyom Trishkin: 市場に関することだ。だからミスはあってはならない。あるいは、適切な処理がなされていなければならない。市場のためでなかったら、私はあまり気にしなかっただろう)証拠金はスリッページのためのものだと理解していますが? Rashid Umarov 2017.11.07 07:06 #43 Oleksii Chepurnyi:相場がなかったら、あまり気にしなかったと思う)証拠金はスリッページのためなんですね?ええ、値動きが激しいときにミスをする確率を少しでも減らすためです。 Artyom Trishkin 2017.11.07 07:58 #44 Oleksii Chepurnyi:相場がなかったら、あまり気にしなかったと思う)証拠金はスリッページのためだと理解していますが?スリッページ-約定時、ここでは市場環境状態の瞬間の取引依頼の正しさ。計算 - 正しさをチェックし、必要であれば修正してリクエストを送信。その後、リクエストの結果をチェック。これはEA側です。そして、約定はサーバー側で、スリッページの値は、価格が変動したときにサーバー部分がリクエストを受け入れるか拒否するかを決めるために、すでに要求されています。 Oleksii Chepurnyi 2017.11.16 08:48 #45 午後。ドキュメントから:symbol_volume_limit. このシンボルで許可される最大数量は、オープンポジションと一方向(買いまたは売り)の 保留注文の合計数量です。例えば、上限が5ロットの場合、5ロットの買いポジションを保有し、5ロットの売り指値注文を発注することができます。しかし、買いの指値注文は発注できませんし(一方向の合計数量が指値を超えるため)、5ロット以上の売りの指値注文を発注することもできません。私が理解する限りでは、取引または注文を発注しようとする方向のすべてのポジションと注文の数量を考慮して計算する必要があります。しかし、ここでは、1つのシンボルに対するロット数の 制限は、方向は全く考慮されていません。それとも何か誤解しているのでしょうか? Ramiz Mavludov 2018.01.09 15:46 #46 Vladislav Andruschenko:おそらく、この関数でロットを正規化し、無効がないようにすべきだろう。そして、この関数は資金がないことを書き込みますが、ポジションをオープン するリクエストをサーバーに送信しません。私は最近、このような命令を2年ほど前に使い始めました:実際にすべてが動作します。取引を開始すると、Expert Advisor は単にPrint("Not Enought Money Margin Required "+( string)margin) string を返します;Expert Advisorは市場でテストされ、誰もが満足しています。 ありがとう、ウラジスラフ!以前は問題なく動作していた私のものや、バリデータが私たちを誘導するこのものとは異なり、あなたのバリアントはまだ動作しています:bool CheckMoneyForTrade(string symb, double lots,int type) { double free_margin=AccountFreeMarginCheck(symb,lots,type); //-- 十分な資金がない場合 if(free_margin<0) { string oper=(type==OP_BUY)? "Buy":"Sell"; Print("Not enough money for ", oper," ",lots, " ", symb, " Error code=",GetLastError()); return(false); } //-- テストは成功した return(true); } Rashid Umarov 2018.01.09 16:18 #47 Ramiz Mavludov: ありがとう、ウラジスラフ!あなたのバリアントは私のバリアントと違ってまだ動いています:このコードはどこにありますか?追記 ポルトガル語版と日本語版の記事で見つけたので修正しました。また Rashid Umarov 2018.01.09 16:25 #48 Oleksii Chepurnyi:午後。ドキュメントから:symbol_volume_limit. このシンボルで許可される最大数量は、オープンポジションと一方向(買いまたは売り)の 保留注文の合計数量です。例えば、上限が5ロットの場合、5ロットの買いポジションを保有し、5ロットの売り指値注文を発注することができます。ただし、買いの指値注文を発注したり、5ロットを超える売りの指値注文を発注したりすることはできません。私が理解する限りでは、取引または注文を発注しようとする方向のすべてのポジションと注文の数量を考慮して計算する必要があります。しかし、ここでは、1つのシンボルに対するロット数の 制限は、方向は全く考慮されていません。それとも何か誤解しているのでしょうか?おっしゃるとおり、この例では方向は考慮されていません。買い注文はポジティブに、売り注文はネガティブに受け取られます。出力される値と符号から、ボリュームと方向がわかります。 次のように修正する必要があります。 Ramiz Mavludov 2018.01.09 17:16 #49 Rashid Umarov:このコードはどこに記載されていますか?追記 ポルトガル語版と日本語版の記事にありましたので修正しました。rdもあります。今は表示できません。検証のために送信したとき、レポートの148エラーをクリックするとbool CheckMoneyForTrade(string symb, double lots,int type) { double free_margin=AccountFreeMarginCheck(symb,lots,type); //-- 十分な資金がない場合 if(free_margin<0) { string oper=(type==OP_BUY)? "Buy":"Sell"; Print("Not enough money for ", oper," ",lots, " ", symb, " Error code=",GetLastError()); return(false); } //-- テストは成功した return(true); } 版はロシア語のままでした。 Oleksii Chepurnyi 2018.01.15 07:05 #50 Rashid Umarov:おっしゃるとおり、この例では方向が考慮されていません。買い注文はポジティブに、売り注文はネガティブに受け取られます。出力される値と符号から、出来高と方向がわかります。 修正が必要サインについて理解できません。次のように書きました。//--- 全アイテムの最大ボリューム double max_volume = SymbolInfoDouble(CheckSymb,SYMBOL_VOLUME_LIMIT); if(ED(max_volume,0)) return(true); //--- double sum_volume = 0; int oper = 0; if(CheckOperation==ORDER_TYPE_BUY || CheckOperation==ORDER_TYPE_BUY_LIMIT || CheckOperation==ORDER_TYPE_BUY_STOP || CheckOperation==ORDER_TYPE_BUY_STOP_LIMIT) oper = 1; if(CheckOperation==ORDER_TYPE_SELL || CheckOperation==ORDER_TYPE_SELL_LIMIT || CheckOperation==ORDER_TYPE_SELL_STOP || CheckOperation==ORDER_TYPE_SELL_STOP_LIMIT) oper = 2; for(int i=PositionsTotal()-1; i>=0; i--) { if(!pst.SelectByIndex(i)) ShowError; if(pst.Symbol()==CheckSymb) { if(oper==1 && pst.PositionType()==POSITION_TYPE_BUY) sum_volume += pst.Volume(); if(oper==2 && pst.PositionType()==POSITION_TYPE_SELL) sum_volume += pst.Volume(); } } for(int i=OrdersTotal()-1; i>=0; i--) { if(!ord.SelectByIndex(i)) ShowError; if(ord.Symbol()==CheckSymb) { if(oper==1 && (ord.OrderType()==ORDER_TYPE_BUY || ord.OrderType()==ORDER_TYPE_BUY_LIMIT || ord.OrderType()==ORDER_TYPE_BUY_STOP || ord.OrderType()==ORDER_TYPE_BUY_STOP_LIMIT)) sum_volume += ord.VolumeCurrent(); if(oper==2 && (ord.OrderType()==ORDER_TYPE_SELL || ord.OrderType()==ORDER_TYPE_SELL_LIMIT || ord.OrderType()==ORDER_TYPE_SELL_STOP || ord.OrderType()==ORDER_TYPE_SELL_STOP_LIMIT)) sum_volume += ord.VolumeCurrent(); } } if(sum_volume+CheckVolume > max_volume) { Alert(OrdersText(0010),DoubleToString(max_volume,VolumeDigits(CheckSymb))); return(false); } //--- return(true); 123456789101112...26 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
しかし、それでは取引を逃す可能性がある......。
市場に関することだ。だからミスはあってはならない。あるいは、適切な処理がなされていなければならない。
市場のためでなかったら、私はあまり気にしなかっただろう)
証拠金はスリッページのためのものだと理解していますが?
相場がなかったら、あまり気にしなかったと思う)
証拠金はスリッページのためなんですね?
ええ、値動きが激しいときにミスをする確率を少しでも減らすためです。
相場がなかったら、あまり気にしなかったと思う)
証拠金はスリッページのためだと理解していますが?
スリッページ-約定時、ここでは市場環境状態の瞬間の取引依頼の正しさ。
計算 - 正しさをチェックし、必要であれば修正してリクエストを送信。その後、リクエストの結果をチェック。これはEA側です。
そして、約定はサーバー側で、スリッページの値は、価格が変動したときにサーバー部分がリクエストを受け入れるか拒否するかを決めるために、すでに要求されています。
午後。
ドキュメントから:
symbol_volume_limit.
このシンボルで許可される最大数量は、オープンポジションと一方向(買いまたは売り)の 保留注文の合計数量です。例えば、上限が5ロットの場合、5ロットの買いポジションを保有し、5ロットの売り指値注文を発注することができます。しかし、買いの指値注文は発注できませんし(一方向の合計数量が指値を超えるため)、5ロット以上の売りの指値注文を発注することもできません。
私が理解する限りでは、取引または注文を発注しようとする方向のすべてのポジションと注文の数量を考慮して計算する必要があります。
しかし、ここでは、1つのシンボルに対するロット数の 制限は、方向は全く考慮されていません。
それとも何か誤解しているのでしょうか?
おそらく、この関数でロットを正規化し、無効がないようにすべきだろう。
そして、この関数は資金がないことを書き込みますが、ポジションをオープン するリクエストをサーバーに送信しません。
私は最近、このような命令を2年ほど前に使い始めました:
実際にすべてが動作します。
取引を開始すると、Expert Advisor は単にPrint("Not Enought Money Margin Required "+( string)margin) string を返します;
Expert Advisorは市場でテストされ、誰もが満足しています。
以前は問題なく動作していた私のものや、バリデータが私たちを誘導するこのものとは異なり、あなたのバリアントはまだ動作しています:
ありがとう、ウラジスラフ!
あなたのバリアントは私のバリアントと違ってまだ動いています:
このコードはどこにありますか?
追記 ポルトガル語版と日本語版の記事で見つけたので修正しました。また午後。
ドキュメントから:
symbol_volume_limit.
このシンボルで許可される最大数量は、オープンポジションと一方向(買いまたは売り)の 保留注文の合計数量です。例えば、上限が5ロットの場合、5ロットの買いポジションを保有し、5ロットの売り指値注文を発注することができます。ただし、買いの指値注文を発注したり、5ロットを超える売りの指値注文を発注したりすることはできません。
私が理解する限りでは、取引または注文を発注しようとする方向のすべてのポジションと注文の数量を考慮して計算する必要があります。
しかし、ここでは、1つのシンボルに対するロット数の 制限は、方向は全く考慮されていません。
それとも何か誤解しているのでしょうか?
おっしゃるとおり、この例では方向は考慮されていません。買い注文はポジティブに、売り注文はネガティブに受け取られます。出力される値と符号から、ボリュームと方向がわかります。
次のように修正する必要があります。
このコードはどこに記載されていますか?
追記 ポルトガル語版と日本語版の記事にありましたので修正しました。rdもあります。今は表示できません。検証のために送信したとき、レポートの148エラーをクリックすると
版はロシア語のままでした。おっしゃるとおり、この例では方向が考慮されていません。買い注文はポジティブに、売り注文はネガティブに受け取られます。出力される値と符号から、出来高と方向がわかります。
修正が必要
サインについて理解できません。
次のように書きました。