■超簡単な売買プログラム(リピートイフダン編)を作ってみました。
// 外部パラメータ
extern int MaxLots = 5; // 最大ポジション数
extern double OpenPrice = 90.00; // 約定価格
extern double ClosePrice = 91.00; // 決済価格
extern double PriceRange = 0.20; // 価格の値幅
// マジックナンバー
#define MAGIC 10000
int start() {
for(int i=0; i<MaxLots; i++) {
// 現在のポジションのチェック
int OpenPosition = 0;
for (int j = OrdersTotal() - 1; j >= 0; j--){
if(OrderSelect(j, SELECT_BY_POS) == false) { break; }
if(OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC+i) { continue; }
OpenPosition++;
}
if(OpenPosition != 0) { continue; }
// 買い注文
if(OpenPrice < ClosePrice) {
if(OpenPrice-PriceRange*i >= Ask) { return(-1); }
OrderSend(Symbol(), OP_BUYLIMIT, 0.1, OpenPrice-PriceRange*i, 3, 0,
ClosePrice-PriceRange*i, "Buy", MAGIC+i, 0, Red);
}
// 売り注文
else if(OpenPrice > ClosePrice) {
if(OpenPrice+PriceRange*i <= Bid) { return(-1); }
OrderSend(Symbol(), OP_SELLLIMIT, 0.1, OpenPrice+PriceRange*i, 3, 0,
ClosePrice+PriceRange*i, "Sell", MAGIC+i, 0, Blue);
}
}
return(0);
}