OrderSend関数を試したが、機能しない。
現在、mqlを入門レベルの参考書で勉強しています。
只今参考書では「注文してみよう」の段階です。
参考書に従って(参考書に掲載しているのとまったく同じプログラムを書いています。)、
以下のスクリプトをMT4のデモ口座で実行しましたが、無反応(注文したことにならない。青い矢印もつかない。)です。
考えたのですが、わかりません。どこに問題があるのでしょうか?
スクリプトーーーーーーーーーーーーーーーーーーーーーー
スクリプトのファイル名 21-0621
#property copyright "Copyright 2021, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict void OnStart() { OrderSend(Symbol(),OP_BUY,0.1,Ask,10,0,0,"テスト注文",0,0,clrBlue); }
実行してみた結果の画面ーーーーーーーーーーーーーーーーーーーーーーー

添付画像について
※エキスパートに、実行されたようなメッセージは残ってます。
追記1ーーーーーーーーーーー
● OrderSendの戻り値
↓
-1でエラーでした
● GetLastError()の値
↓
0でした。
しらべたところ、ERR_NO_ERROR エラーなし とのことです。
OrderSendの戻り値を確認して、エラーだった場合はGetLastError()の値を追記してください。
追記依頼ありがとうございます。
質問画面に追記完了しました。
※念のためこちらにも記載します。
追記1ーーーーーーーーーーー
● OrderSendの戻り値
↓
-1でエラーでした
● GetLastError()の値
↓
0でした。
しらべたところ、ERR_NO_ERROR エラーなし とのことです。
OrderSendでエラーになっているのにエラーが入ってない?
ちなみに業者はどこをつかっているのでしょうか?
例えばFXTFとかだと自動売買が許可されていないので下記のコードだと4112が出力されます。
int err = OrderSend(Symbol(),OP_BUY,0.1,Ask,10,0,0,"テスト注文",0,0,clrBlue);
if (err == -1) {
printf("error = %d", GetLastError());
}
頂いたコードを入力して試し,エラーを調べて解決しました。
現在のデモアカウントでは新規注文ができない状態であることが原因でした。
アカウントを作り直して解決しました。
エラーが0になっていたのは、僕のミスです。
GetlastError()がよくわかっておらず、下記のように書いてました。
僕が初めに作ったスクリプトーーー
GetLastError();
Print("エラー内容",_LastError);
ーーーーー
↓頂いたコードを参考に、このようにしたら、正常にエラーチェックできました。
Print("エラー内容",GetLastError());
とても助かりました。
ありがとうございます。
回答1件
あなたの回答
tips
プレビュー