為替ロボット 研究所

« 為替ロボットの作り方(FXCM用) 設定の確認 | メイン | 為替ロボットの作り方(FXCM用) 出来上がり »

為替ロボットの作り方(FXCM用) 仕上げ

 [プログラム最終版]
最後に、
シグナル発生時にSBFXがオーダーを(メールに見せかけて)書き出すよう、コードに追加します。

MAPreGCDCを以下のように書き換えます(最終バージョン)
(売買ルールは、
  • GC前になったら買い、DC前は売り
  • 短期移動平均の傾きが反転したらポジションを閉じる
  • ストップロスは150pips
)
*この最終バージョンでバックテストを行う場合は、必ずHyperOrderを停止しておいて下さい。テストによって出力された過去のオーダーが大量に実行されてしまいます。
また、テスト終了後には忘れず、アカウント名(.csv)ファイルを削除して下さい。
 *a メールオーダー用のユーザーファンクションを呼び出します
   参考:UserFunction()


さらに一つ、mailorderというユーザーファンクションを追加します。

*ユーザーファンクションは、Expertプログラム中から呼び出すことのできる外部ファイルです。繰り返し行なう処理や、他のExpertプログラムでも使用したいものをユーザーファンクションにしておくと、あとから修正や拡張したい時に便利です。
今回は、BJDのメール保存フォルダにオーダーを書き出す処理をユーザーファンクションにしました。これは他のExpertプログラムからも呼び出して使うことができます。

UserFunction mailorderの設定MetaEditor
File>new から、「User Function」を選びます。
Nameをmailorderと入力して、OK。
新規ウィンドウが表示されます。

以下のコードを記入して、*3filenamepassの部分を書き換えます。
 filenemaはBJDで設定したメールのアカウント名(.csv付き)
 passはHOで設定した、オーダー用のパスワードです。
 例:アカウント名kawarobo.csv、パスワードorderpassの場合、
  vars: filename("kawarobo.csv"),pass("orderpass");

Verifyボタンあとは、Verifyボタンで保存、コンパイルして出来上がりです。
(ファイル名はmailorder.mql

 *1 inputsでファンクションの引数を宣言。宣言した順に、UserFunction()からの引数が渡される。参考:UserFunction()
 *2 lotmultipleはロット数の単位を調整するための変数。一万通貨はSBFX上では0.1なのに対し、FXCMでは10なので、100倍する。
 *3 アカウント名,オーダー用パスワード。環境に合わせて書き換えが必要
 *4 SwitchでSymbolごとに処理を振り分ける。SBFXではEURUSDのような記述であるのに対し、HOではEUR/USDのように間に「/」が必要。
 *5 ここから、ファイルの読み書き。FileOpen()でcsvファイルを開く。";"は列の区切り文字。今回は「列」を使用しないので関係ない。FileWrite()で一行ずつ書き込み、FileClose()でファイルを閉じる。
 *6 ファイルの最後に読み書きポイントを移動。他の通貨との同時運用の場合を考慮して、オーダーを上書きではなく追記するため。


« 為替ロボットの作り方(FXCM用) 設定の確認 | メイン | 為替ロボットの作り方(FXCM用) 出来上がり »

トラックバック

このエントリーのトラックバックURL:
http://kawarobo.com/motp/mt-tb.cgi/298

コメント

コメントしてください




保存しますか?


おすすめFX