total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // check for opened position
OrderSymbol()==Symbol()) // check for symbol
{
if(OrderType()==OP_BUY) // long position is opened
{
// check for trailing stopif(TrailingStop>0)
{
if( Bid-OrderOpenPrice()>Point*TrailingStop )
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(), Bid-StopLoss,Bid + TakeProfit/*OrderTakeProfit()*/,0,Green);
return(0);
}
}
}
}
else// go to short position
{
// check for trailing stopif(TrailingStop>0 )
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+StopLoss,Ask-TakeProfit/*OrderTakeProfit()*/,0,Red);
return(0);
}
}
}
}
}
Доброго времени суток. Проблема с Trailing Stop'ом.
Не совсем корректно модифицируются ордера. Получается так,что уровень Stop Loss следует за ценой независимо от движения цены.
Допустим открывается ордер на покупку. Цена растет,срабатывает trailing stop и стоп лосс подтягивается. Потом цена пошла в обратном направлении,ордер не закрывается,
ордер не закрывается, а модифицируется и понидается уровень stop loss'a. В итоге сделка становится убыточной, хотя открылась она в правильном направлении.
Предполагал, что от этого предохраняет проверка if( Bid-OrderOpenPrice()>Point*TrailingStop ), но видимо это не так. Что посоветуете?
А я в форексе не силён.....как учитывается спред?
在同一时刻的最佳买入(买入)和卖出(卖出)价格之间的差异--即供求关系。如果您在外汇市场上进行买入交易,您以买入价买入,而当您关闭订单时,您以卖出价卖出,买入价和卖出价之间的差额将是点差的价值,对于不同的货币和不同的经纪公司,通常为2至6点。
我认为这在代码中已经得到了考虑,在OrderSend中,出价与要价是规定的。
А я в форексе не силён.
期货不是外汇。
如何考虑到价差?
通常会被扣除。
Фьючерсы -- это не Форекс.
好了,伙计们--帮助。以下是合同的具体内容。
我需要考虑什么/怎么做?
虱子的成本和虱子的大小 -- 这就是问题所在。
我的意思是,你得到的是。一个 "点 "是五个点。五个点(用外汇术语说是一个 "点")的成本是3,大致上是卢布。
也就是说,离散化(对吗?)不是1:1,而是1:5的一个最小价格变化。
一般来说,最好是等待老同志的到来。
下午好。追踪止损的问题。
不太正确的修改命令。事实证明,无论价格如何变动,止损 水平都是跟着价格走的。
比方说,我们开了一个买入订单。价格增长,追踪止损触发,止损被拉高。然后,价格向相反方向移动,订单没有被关闭。
该订单没有被关闭,而是被修改并降低了止损水平。结果是交易变得无利可图,尽管它是在正确的方向上打开的。
我想这是通过检查if( Bid-OrderOpenPrice()>Point*TrailingStop)来防止的,但这似乎是错误的。你有什么建议?
Доброго времени суток. Проблема с Trailing Stop'ом.
Не совсем корректно модифицируются ордера. Получается так,что уровень Stop Loss следует за ценой независимо от движения цены.
Допустим открывается ордер на покупку. Цена растет,срабатывает trailing stop и стоп лосс подтягивается. Потом цена пошла в обратном направлении,ордер не закрывается,
ордер не закрывается, а модифицируется и понидается уровень stop loss'a. В итоге сделка становится убыточной, хотя открылась она в правильном направлении.
Предполагал, что от этого предохраняет проверка if( Bid-OrderOpenPrice()>Point*TrailingStop ), но видимо это не так. Что посоветуете?