では早速、今まで作成してきた”Test1”プログラムを使って、注文するプログラムを作ってみます。
まず、どのような注文ルールにするかを決めたいと思います。
あるメールマガジンサイトで紹介されていた手法を前からやってみたいと思っていましたので、そのルールに沿ったプログラムを作ってみたいと思います。
そのルールとは、「相場が一定のレンジ内で上がったり下がったする時に、買いと売り注文のセットを繰り返す」というものです。
と言葉で書いただけでは?でしょうから、下の図で説明すると
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF8LnOYeWfp26uXmuO5fsLMeyo9AD2vPxBeV3Jhrs1dY7JDi-Kko5bNEJX-1a9UuAuBzt6BtrKYXRffy_GPIu1AJ_HRUVdZmmWukay1kC7_vqDZGoXBBaH4RybldvPnllvBxhU7OZvSXc/s400/0_Pic.bmp)
「109.65 円で買って 109.85 円で売る」という注文を繰り返したいのです。
すると赤丸の部分(109.65)で”買い”、青丸の部分(109.85)で”売り”が成立するようになり利益が獲得できるというルールです。
これをプログラムするにはどうすればよいでしょうか?
まずは前回調べた OrderSend() を使って注文を書いてみます。
注文内容としては、次のようになります。
・注文する通貨ペアは"USDJPY"
・注文方法は指値買い
・ロット数(取引数)は 1 万通貨
・指値は 109.65 円
・スリッページは 3 Pips
・損きり価格は無し
・利食い価格は 109.85 円
・コメントは無し
・識別番号は無し
・有効期限は無し
・チャートの色は緑
これを OrderSend() で書いてみると
OrderSend("USDJPY",OP_BUYLIMIT ,0.1,109.65,3,0,109.85,NULL,0,0,Green);
となります。
上記 OrderSend を書く場所は、int Start() の部分になるので、”Test1”プログラムに次のように書きます。
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
// Print("Test1プログラムを実行しています");
OrderSend("USDJPY",OP_BUYLIMIT,0.1,109.65,3,0,109.85,NULL,0,0,Green);
//----
return(0);
}
//+------------------------------------------------------------------+
なお、"Test1プログラムを実行しています"の文字を画面に表示する必要はもうないため、削除するか、左端にスラッシュ("/")を2つ入れてコメント状態にします。
これでコンパイルをすれば、とりあえず注文はできるはずです。
それでは早速注文してみようと思いましたが、デモ用のIDとはいえ、さすがにいきなり取引しては何がおきるか分かりませんので、バックテスト環境でまずは取引してみます。
バックテスト環境での動かし方は以前ご紹介したように、MetaTrader のメニューバーから<表示>-<Strategy Tester>を選択します。
前回と同じように「セッティング」タグにて次の内容を指定してスタートボタンをクリックします。
・Expert Advisor:”Test1, Copyright ・・・”
・通貨ペア :”USDJPY, US Dollar vs Japanese Yen”
・期間 :”Daily”
・モデル :”Open prices only (fastest method to ・・・”
では、実行!!
おっ、注文してるしてる!!って注文しすぎだろ!!
結果の詳細は次回に。
0 件のコメント:
コメントを投稿