作者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