5分足や15分足で便利に使ってるスクリプトを紹介します。簡単に作成できるので、メタエディターで作成してみてください。便利・・・自己満足かも知れません。ご容赦ください。
スクリプト検証FX会社
MT4、BUYスクリプトの検証は次の2社で行っています。
- FXTF ゴールデンウェイ・ジャパン株式会社
- XM XM
いきなりリアル口座でテストはせず、必ずデモ口座で検証後、リアル口座で活用することをおすすめします。
なお、上記2社は、発注が成行注文方式です。カウントダウン方式の場合は、スクリプトの書き方が異なります。
両者の差は、売買発注と同時にStopLossとTakeProfitも発注できるかどうか、です。
成行注文方式は可能で、カウントダウン方式の場合は、まず売買を発注して、約定したらStopLossとTakeProfitを発注する、という二段階処理になります。
取引しているFX会社がどちらか不明の場合、新規注文windowを確認してください。
注文種別が成行注文になっていれば、成行注文方式。カウントダウン方式だとカウントダウンと表示されていると思います。
MT4 BUYscriptの作成
1 メタクォーツ言語エディター(MetaEditor)の起動
赤矢印のアイコン『メタクォーツ言語エディター』をクリック。
または、メニューバーのツール(T) → メタエディター(E) と進むと起動します。
2 新規作成
ツールバーの新規作成をクリック。次にMQLウィザードでスクリプトを選択 → 次へ
3 スクリプト情報の入力
上から順に入力します。
- 名前:お好きな名前に。今回は、後の活用も考慮して1_を先頭に付記
- 著作権:適当。私は HappyJiJi と入力。
- リンク:適当。ご自分のブログを入力すればいいと思います。
- パラメータ:スクリプトで使用を考えているパラメータを入力
- ここでパラメータをすべて入力しなくてOk
- エディターで追加・変更・削除が可能
- プログラム内でパラメータ値の変更がある場合は、ここで入力しない方が楽
4 エディターが起動
5 処理プログラムの入力
利用する変数の宣言(上の赤枠)と処理内容(下の赤枠)を記述
(変数宣言部)
int Slippage = 3; スリップページの許容pips
int orderOk = 0; 注文が約定したかどうかを受け取る変数
(処理内容)
if文:通貨ペアの価格単位に各値を合わせる。小数点以下の桁数が3または5の場合10倍
orderOk=OrderSend(・・・・・):BUY注文発注。約定したらorderOKには0より大きな数値(チケット番号)が保存されます。
if(orderOk < 0):約定できなかった場合、エラー番号をターミナルのエキスパート欄に出力します。
(変更しておいた方がいいと思う部分)
10行目、、、
10:#property script_show_inputs
スクリプト命令時にパラメータwindowが表示されます。
パラメータの確認・変更を常に行いたい場合には必要ですが、すぐエントリーしたい場合には不要です。
また、StopLossとTakeProfitは、一度設定したら変更することは少ないでしょうし、もし、変更したい、となってもチャート上で該当ラインをドラッグすれば簡単に変更できますので、私はコメントアウト(先頭に//付記)しています。
以上、処理内容は、詳細分からなくても実際に入力して稼働させてみると理解できると思いますので、まずは入力してコンパイルしてスクリプトを実行してみてください。
6 コンパイル
ツールバーのコンパイルをクリック。
エラー出なければ、スクリプト完成。
今回は、エラーが出ます。
7 コンパイルエラー対処
プログラムで変更できない変数を変更しているので、出たエラーです。
エラーの該当行(赤〇行)をマウスでダブルクリックすると、エラーを起こしている行にカーソルが飛びます。
この変数宣言で、input は、プログラム内で変更できない変数宣言です。
ここをプログラム内でも変更可能な変数として宣言すればOk
input → extern に。
コンパイルすると、、、
エラーなく、コンパイル終了。
最初のスクリプトの情報入力部分のパラメータは、プログラム内での変更が不可能な変数宣言となるようです。
なので、プログラム内で変更する可能性があるパラメータは、スクリプト情報入力部で入力せず、プログラム内で入力した方がいいかも、です。いいかどうかは人によると思います。
さて、次は作成したスクリプトのショートカットキー設定です。
スクリプトのショートカットキー登録
1 MT4ナビゲーター内、スクリプト『1_Buy100』上で右クリック
2 ショートカット設定(S)をクリック
3 ショートカットキーを設定
- コントロールキー欄をダブルクリックし、コントロールキーを選択:ここではAltを選択。
- キー欄をダブルクリックして、Buyの頭文字『B』を入力
青色バック行のようになります。閉じるをクリックし、設定を終了します。
BUYスクリプト使用方法
選択されているチャートで動作します。Buyオーダーしようとしている通貨ペアのチャートが選択状態であることを確認の上、『Alt +B』(AltキーとBキーを同時に押す)で発注します。
ここで、StopLossとTakeProfitを都度確認・変更したい場合には、次の行を有効にしてコンパイルしてください。
10:#property script_show_inputs
この行は、スクリプト指示時にパラメータを表示します。
ここで数値を変更すれば、その数値でBuy命令が出されます。
ほとんどの場合、StopLossとTakeProfitの変更はあまりないと思いますので、この行はコメント化しておくといいと思います。
コメント化は、行の先頭に『//』スラッシュを二つです。
続いて、SellとCloseのスクリプトもアップします。
コメント
はじめまして。
とても有意義なツールの提供ありがとうございます!
このページを参考に初めてスクリプトを作成してみました。
コンパイルまでは無事にできたのでMT4に実装してテストしてみた所、
「2021.04.30 15:19:21.936 2_DosankoSell EURUSD,M5: Ordersend failed with error #130」
というエラーが出てエントリーできません。
ちなみに口座はアキシオリーでMT4のバージョンは4.0ビルド1330です。
お忙しいところ恐縮ですが、ご教授くださいませんか?
よろしくお願いいたします。
道産子のKさん、
ネット上で『Ordersend 130』と検索すれば、いろいろな情報を得ることができると思います。
以下、スクリプトを見ていないので、推測ですが。。。
ネット上の情報では把握できないと思われる点を記します。
takeprofit と stoploss 値を大きく、例えば、30にしてみてください。
うまくいったら、オーダー消して、次に半分の15に。
また、うまくいったらまたその半分ぐらいの7か8に。
エラーになった時点で、数値を増やしてください。
ここまでで、takeprofit か stoploss の両方ともエラーにならない値が把握できます。
次にtakeprofit ・stoploss それぞれ個別に数値を徐々に減らしてスクリプトを実行します。
個別にエラー発生しない値が把握できます。
といった感じで調べると業者によるストップレベルの影響が把握できます。
実際には、余裕を持たせてエントリーすべきなのですが、ここはご自分の裁量で行ってください。
もちろん、プログラムでも可能ですが、ここもご自身でチャレンジしてください。
BUY と SELL によって、オーダーできる takeprofit ・ stoploss とストップレベルの関係を把握しておくといいと思います。
同じ値にはなりません。同じ値になる業者もあるかもしれませんが・・・
なお、このストップレベルは、気配値表示の通貨ぺアの仕様でも確認できます。
また、業者によってはスプレッドの拡張と同じように変動する場合があることに注意してください。
以上、少しでも参考になればいいのですが・・・
スクリプトの件は私なりにネットで調べてみたのですがプログラムの知識がある前提の内容ばかりで意味不明でした( ´∀` )…。クローズスクリプトの方は決済できました。
MT4の方での実験はストップを200で試すところまではやってみましたがエラーになったので合間を見て2000でテストしてみたいと思っています。
ちなみに気配値で調べた仕様ストップレベルは0でした。
今はEAの1ClickButtonSmall107を使ってみようと思いダウンロードさせていただきました。
当分の間はこちらのEAにお世話になりそうです。
ProfitandLossDetail101も秀逸ですね。
出来ればラベルで選択出来て、決済の後もPips数が残ってくれれば、振り返りの際にさらに活躍できそうですね。
自分なりに工夫してスクリプトと格闘してみます。