ロング、ショートそれぞれで合計ピプスに達した時決済したいのですが、下記コードでは思ったようにいきません。
どこを手直ししたらいいでしょうか?
何卒ご教示願います。
double Total_Profit0;
double Total_Profit1;
for( i=OrdersTotal()-1;i>=0;i–)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol())
{
double Or;
if (OrderType()==OP_BUY)
{
Or=OrderLots();
Total_Profit0=(Bid-OrderOpenPrice())*(Or/BaseLots);
}
if (OrderType()==OP_SELL)
{
Or=OrderLots();
Total_Profit1=(OrderOpenPrice()-Ask)*(Or/BaseLots);
}
}
}
}
if(Total_Profit0>takeprofit*AdjustPoint(Symbol()) )
{
CloseOrder(1);
CancelOrder(1);
}
if(Total_Profit1>takeprofit*AdjustPoint(Symbol()) )
{
CloseOrder(-1);
CancelOrder(-1);
}
検索結果がありません。 |
検索結果がありません。 |
損益を取得する処理が原因の可能性がございます。
EAつくーるWeb版で出力される損益取得関数のコードをご紹介いたします。
下記は引数で指定したマジックナンバーについて、現在保有ポジションの損益合計を取得する関数でございます。
買い
OrderType() == OP_BUY
、売りOrderType() == OP_SELL
の保有ポジションを対象にしておりますので買いのみを対象とする場合は、下記のように売りの条件を削除して、ご利用いただければ幸いでございます。