請教 mt4 設定停利的問題 - 財經

Table of Contents


反覆看了好久
還是找不到為什麼沒有停利

請問高手是否有看出甚麼問題


// 下買單
ticket_buy = OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, "買進",
id, 0, Blue);
// 如果有成交設定停損停利
if(ticket_buy > 0)
{
// check 50% profit
double high = High[iHighest(Symbol(), 0, MODE_HIGH, green, 1)];
double low = Low[iLowest(Symbol(), 0, MODE_LOW, green, 2)];
double fifty_precent = (high - low) / 2;

set_take_profit(fifty_precent);
bars = Bars;
}


實作設定停利
void set_take_profit(double take_profit)
{
double stoploss, takeprofit;
for(int z =0;z<OrdersTotal();z++)//透過FOR函式執行訂單挑選次數
{
OrderSelect(z,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol() == Symbol() && OrderType() == OP_BUY &&
OrderMagicNumber() == id)//挑選出符合條件的訂單
{
if(sl>0)//如果有設停損
stoploss = OrderOpenPrice()-sl;//停損價為進場價格減去停損點數
else
stoploss = OrderStopLoss();//維持原先停損價格
if(take_profit>0)//如果有訂停利
takeprofit = OrderTakeProfit()+take_profit;
else
takeprofit = OrderTakeProfit();//維持停利價格

OrderModify(OrderTicket(),OrderOpenPrice(),stoploss,takeprofit,0,White);
}
}
}

--

All Comments

Liam avatarLiam2013-08-16
green為integer?
Oliver avatarOliver2013-08-19
是的 是找 green 根 k 的高低一半做停利
Ethan avatarEthan2013-08-24
extern int green = 180;
Hazel avatarHazel2013-08-24
想辦法把變數都print出來 還有order相關指令都輸出error
Gary avatarGary2013-08-28
我知道為什麼了
takeprofit = OrderTakeProfit()+take_profit;
Quintina avatarQuintina2013-08-29
應該是 takeprofit = OrderOpenPrice()+take_profit;
Lydia avatarLydia2013-09-01
謝謝 Sunal 大提醒了我 Order 的 error