記事"MQL5でExpert Advisorを書くための初心者向けステップバイステップガイド"についてのディスカッション - ページ 17 1...101112131415161718192021222324...30 新しいコメント Daniel Lima 2018.11.20 02:40 #161 とても素晴らしい!ありがとう! charlesg 2018.11.21 17:32 #162 ファイルをダウンロードしてコードをデバッグしたところ、次のような警告が表示されました。 OrderSend'の戻り値をチェックする必要があります。 EricVortex 2018.11.22 01:14 #163 こんにちは、私もロボットをテストしている初心者です。 これを試してみてください: //OrderSend(mrequest,mresult);bool res=OrderSend(mrequest,mresult);// 結果コードを取得するif(res && (mresult.retcode==10009 || mresult.retcode==10008)) //リクエストが完了したか、注文が発注されました。{Alert("A Buy order has been successfully placed with Ticket#:",mresult.order,"!");}else{Alert("買い注文リクエストを完了できませんでした -エラー:",GetLastError());ResetLastError();を返します;} 間違っていたら訂正してください! 調査元:https://www.mql5.com/en/forum/23663 return value of 'OrderSend' should be checked 2014.05.03www.mql5.com Hi ! I'm wondering how to do that ...:/ the warning appeared @ the last update... Discussion of article "Step-by-Step Closing a position TRADE_RETCODE_REJECT error by server Allyson 2019.01.10 16:54 #164 デバッグをしていると、注文を送信するときにいつもエラーが出ます。私のコードのせいかと思いましたが、ダウンロード用のmql5ファイルをテストしてもエラーになります。 brunoblits 2019.01.16 12:52 #165 northedan:デバッグをしていると、注文を送信するときにいつもエラーが出ます。私のコードのせいかと思いましたが、ダウンロード用のmql5ファイルをテストしてもエラーになります。例題は通貨でのものなので、0.1というロット変数はあなたのテストには適していないと思いますので、次のように変更してみてください(mrequest.volume変数を変更): double minSymbolLot = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);mrequest.action = TRADE_ACTION_DEAL; // 即時注文実行mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // 最新のアスク価格mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // ストップロスmrequest.tp = NormaliseDouble(latest_price.ask + TKP*_Point,_Digits); // テイクプロフィットmrequest.symbol = _Symbol; // 通貨ペア mrequest.volume = minSymbolLot; // 取引ロット数mrequest.magic = EA_Magic; // 注文マジックナンバーmrequest.type = ORDER_TYPE_BUY; // 買い注文mrequest.type_filling =ORDER_FILLING_FOK; // 注文執行タイプmrequest.deviation=100; Stop Loss with price 初心者の方からの質問 MQL5 MT5 MetaTrader Questions from Beginners MQL5 Sella170 2019.01.17 13:35 #166 このEAをミニインデックスや ミニダラーに使えるかどうか、どなたかご存知ですか? জচেলিনো 2019.01.17 13:41 #167 Sella170: このEAをミニインデックスやミニドルに使えるかどうかご存知の方はいらっしゃいますか?ストラテジーを理解しましたか?リスクを認識していますか?SLとTPのレベルを分析しましたか?使用されているテクニカル指標をご存知ですか?パラメーターの設定方法をご存知ですか?各資産(WINとWDO)の変数をカスタマイズする方法を知っていますか? コード自体はどのような資産にも対応できるように開発されており、"_Symbol "と任意のチャート時間"_Period "で識別できます。 ここで重要なのは、EAを実行する 際に何をしているのかを知っておくことです。もしそうするのであれば、ツールを使いこなし、株式市場に対する理解が深まるまでは、デモ口座でのみ作業することをお勧めします。 [ ]'s apirakkamjan 2019.02.10 12:42 #168 みんな、 複数の注文が同時にオープンしてエラーが発生した場合の簡単な修正コードです。 次のコードを置き換えてください: 167行目から177行目まで if(PositionSelect(_Symbol)==true) // オープンしたポジションがある { if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { Buy_opened=true; //これは買いだ } else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) { Sell_opened=true; // それは売りである } } をこのコードに置き換えてください: int total= PositionsTotal(); for(int i=0;i<total;i++) { if(PositionGetSymbol(i)==_Symbol); { if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { Buy_opened=true; //これは買いだ } else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) { Sell_opened=true; // それは売りである } } } ありがとうございます。 Locus_Neminis 2019.05.17 08:32 #169 Korobejnik:問題を解決する方法を教えてください。Expert Advisorが買いのポジションを複数連続してオープンし、売りも同様です。コードにチェックがあるにもかかわらず、Expert Advisorはすでに買いポジションと 売りポジションが開いていることに気づかず、新しいポジションを開いてしまいます。 コードにチェックがあるにもかかわらず、売りと買いのポジションがすでにオープンされていることに気づかず、新しいポジションをオープンしてしまいます。このチェックはなぜか機能しません。ここでは荒らしのモデレーターの助けは得られないので、英語のフォーラムからの回答をコピーしておきます: みんな、複数の注文が同時にオープンしてエラーが発生した場合の、簡単な修正可能コードだ。このコードを置き換えてください: 167行目から177行目まで if(PositionSelect(_Symbol)==true) // オープン・ポジション { if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { Buy_opened=true; //これは買いだ } else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) { Sell_opened=true; // それは売りである } }これを int total= PositionsTotal(); for(int i=0;i<total;i++) { if(PositionGetSymbol(i)==_Symbol); { if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { Buy_opened=true; //これは買いだ } else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) { Sell_opened=true; // それは売りである } } } Artyom Trishkin 2019.05.19 15:55 #170 Locus_Neminis:ここではトロールモデレーターの助けは得られないので、英語フォーラムからの回答をコピーしておこう:みんな、複数の注文が同時に開くとエラーが出る場合の簡単な修正可能コードだ。このコードを置き換えてください。このコードに置き換えてください: これは役に立ちません。私のプロフィールにこの件に関するスレッドがあります。そこに問題の 原因と解決 策があります。荒らしについては理解できません。 1...101112131415161718192021222324...30 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ファイルをダウンロードしてコードをデバッグしたところ、次のような警告が表示されました。
OrderSend'の戻り値をチェックする必要があります。
こんにちは、私もロボットをテストしている初心者です。
これを試してみてください:
//OrderSend(mrequest,mresult);
bool res=OrderSend(mrequest,mresult);
// 結果コードを取得する
if(res && (mresult.retcode==10009 || mresult.retcode==10008)) //リクエストが完了したか、注文が発注されました。
{
Alert("A Buy order has been successfully placed with Ticket#:",mresult.order,"!");
}
else
{
Alert("買い注文リクエストを完了できませんでした -エラー:",GetLastError());
ResetLastError();
を返します;
}
間違っていたら訂正してください!
調査元:https://www.mql5.com/en/forum/23663
デバッグをしていると、注文を送信するときにいつもエラーが出ます。私のコードのせいかと思いましたが、ダウンロード用のmql5ファイルをテストしてもエラーになります。
デバッグをしていると、注文を送信するときにいつもエラーが出ます。私のコードのせいかと思いましたが、ダウンロード用のmql5ファイルをテストしてもエラーになります。
例題は通貨でのものなので、0.1というロット変数はあなたのテストには適していないと思いますので、次のように変更してみてください(mrequest.volume変数を変更):
double minSymbolLot = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
mrequest.action = TRADE_ACTION_DEAL; // 即時注文実行
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // 最新のアスク価格
mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // ストップロス
mrequest.tp = NormaliseDouble(latest_price.ask + TKP*_Point,_Digits); // テイクプロフィット
mrequest.symbol = _Symbol; // 通貨ペア
mrequest.volume = minSymbolLot; // 取引ロット数
mrequest.magic = EA_Magic; // 注文マジックナンバー
mrequest.type = ORDER_TYPE_BUY; // 買い注文
mrequest.type_filling =ORDER_FILLING_FOK; // 注文執行タイプ
mrequest.deviation=100;
このEAをミニインデックスやミニドルに使えるかどうかご存知の方はいらっしゃいますか?
ストラテジーを理解しましたか?リスクを認識していますか?SLとTPのレベルを分析しましたか?使用されているテクニカル指標をご存知ですか?パラメーターの設定方法をご存知ですか?各資産(WINとWDO)の変数をカスタマイズする方法を知っていますか?
コード自体はどのような資産にも対応できるように開発されており、"_Symbol "と任意のチャート時間"_Period "で識別できます。
ここで重要なのは、EAを実行する 際に何をしているのかを知っておくことです。もしそうするのであれば、ツールを使いこなし、株式市場に対する理解が深まるまでは、デモ口座でのみ作業することをお勧めします。
[ ]'s
みんな、
複数の注文が同時にオープンしてエラーが発生した場合の簡単な修正コードです。
次のコードを置き換えてください: 167行目から177行目まで
をこのコードに置き換えてください:
ありがとうございます。
問題を解決する方法を教えてください。Expert Advisorが買いのポジションを複数連続してオープンし、売りも同様です。
コードにチェックがあるにもかかわらず、Expert Advisorはすでに買いポジションと 売りポジションが開いていることに気づかず、新しいポジションを開いてしまいます。
コードにチェックがあるにもかかわらず、売りと買いのポジションがすでにオープンされていることに気づかず、新しいポジションをオープンしてしまいます。このチェックはなぜか機能しません。
ここでは荒らしのモデレーターの助けは得られないので、英語のフォーラムからの回答をコピーしておきます:
みんな、複数の注文が同時にオープンしてエラーが発生した場合の、簡単な修正可能コードだ。このコードを置き換えてください: 167行目から177行目まで
これを
ここではトロールモデレーターの助けは得られないので、英語フォーラムからの回答をコピーしておこう:
みんな、複数の注文が同時に開くとエラーが出る場合の簡単な修正可能コードだ。このコードを置き換えてください。
このコードに置き換えてください: