作者jauyou (唯心而已)
看板Trading
標題[討論] 請教 mt4 設定停利的問題
時間Wed Aug 14 00:44:12 2013
反覆看了好久
還是找不到為什麼沒有停利
請問高手是否有看出甚麼問題
// 下買單
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);
}
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.51.161.16
1F:推 Sunal:green為integer? 08/14 00:59
2F:→ jauyou:是的 是找 green 根 k 的高低一半做停利 08/14 01:02
3F:→ jauyou:extern int green = 180; 08/14 01:03
4F:推 Sunal:想辦法把變數都print出來 還有order相關指令都輸出error 08/14 01:05
5F:→ jauyou:我知道為什麼了 08/14 01:20
6F:→ jauyou:takeprofit = OrderTakeProfit()+take_profit; 08/14 01:20
7F:→ jauyou:應該是 takeprofit = OrderOpenPrice()+take_profit; 08/14 01:21
8F:→ jauyou:謝謝 Sunal 大提醒了我 Order 的 error 08/14 01:26