次は、渡された任意の値をプログラムの中で注文時に利用するようにしたいと思います。
まずは、注文のプログラム部分を作成します。
これは”Test1”のプログラムで作った注文をする部分をコピーしてきます。
#"Test1"プログラムの「 int start() 」エリアに記載した内容をコピーしてください。
すると、"Loop_Entry"プログラムは次のようになります。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir8-Pv8zE03qZviVCVog2_4QR9OEysEIAGj3_tD6r-kNPQNtf1sRHa9Z35iaf7hEmNO2TGlIdMuvtbjQH4sQyBLSv6i0upOLXFBy5Fs3gMyzg8BDzf9sUxhb2_CI7y-w3E8Z6-E11D53A/s400/Pic0.bmp)
注文するプログラム部分である OrderSend は、次のように構成されていました。
OrderSend("USDJPY",OP_BUYLIMIT,0.1,109.65,3,0,109.85,NULL,0,0,Green);
・注文する通貨ペアは"USDJPY"
・注文方法は指値買い(OP_BUYLIMIT)
・ロット数(取引数)は 1 万通貨(0.1)
・指値は 109.65 円
・スリッページは 3 Pips
・損きり価格は無し
・利食い価格は 109.85 円
・コメントは無し
・識別番号は無し
・有効期限は無し
・チャートの色は緑
今回は指値を任意の値にしたいので、上記 OrderSend の赤い部分を次のように置き換えます。
OrderSend("USDJPY",OP_BUYLIMIT,0.1,SASHINE,3,0,109.85,NULL,0,0,Green);
つまり、OrderSend の 指値の値を指定する場所に、入力パラメータとして定義した指値の識別子(SASHINE)を指定することで、画面で入力した指値の値で注文されるようになります。
ただし、このままだと利食い価格が固定の109.85のままなので、こちらも合わせて修正が必要です。
とりあえず、指値より20ポイント分プラスになったら利食いすることにします。
任意の指値より20ポイントプラスするプログラムの書き方は
SASHINE+20*Point
となります。
そのため、OrderSend の部分は次のようになります。
OrderSend(
"USDJPY",OP_BUYLIMIT,0.1,SASHINE,3,0,SASHINE+20*Point,NULL,0,0,Green);
#表示領域の都合上、改行記載してあります。
もし、利食い価格も都度入力したいと思うのであれば、指値同様、プログラムに渡すプロパティを増やしてやることで可能となります。
例えば、利食いの識別子を "RIKUI" とすれば、パラメータを指定する部分への追加と OrderSend の修正を次のように行えば OK です。
//---- input parameters
extern double SASHINE=0.0;
extern double RIKUI=0.0;
OrderSend("USDJPY",OP_BUYLIMIT,0.1,SASHINE,3,0,RIKUI,NULL,0,0,Green);
これで、注文時の指値の金額を任意に決められるようになりました。
あとは、コンパイルをして、プログラムを実行し試してみてください。
0 件のコメント:
コメントを投稿