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 ), но видимо это не так. Что посоветуете?
А я в форексе не силён.....как учитывается спред?
同じ瞬間に最も良い買い(bid)と売り(ask)の価格の差、すなわち需要と供給。FXで買い取引をする場合、Bid価格で買い、注文を決済するときにAsk価格で売りますが、BidとAskの差がスプレッドの値になり、通貨や証券会社によって通常2~6pips程度になります。
これはコードで説明されていると思いますが、OrderSendではask付きのbidが規定されています。
А я в форексе не силён.
先物はFXではありません。
スプレッドはどのように考慮されているのでしょうか?
通常、差し引かれます。
Фьючерсы -- это не Форекс.
OKメイト - 助けてください。以下は、契約書の仕様である。
何を・どのように検討すればよいのか?
ダニのコストとダニの大きさ--そこに問題があるのです。
つまり、得られるものは1ピップは5刻みです。5ティック(為替用語で1ピップ)は3ルーブル(約100円)です。
つまり、離散化(ですよね)は1:1ではなく、1つの最小値の変化に対して1:5なのです。
一般的には、年上の同志を待つのがよいでしょう。
こんにちは。トレイリングストップに関する問題。
正しく修正された命令とは言い難い。ストップロスの 水準は、値動きに関係なく価格に追随することが判明した。
例えば、買い注文を出すとします。価格が伸び、トレーリングストップが発動し、ストップロスが引き上げられる。その後、価格が反対方向に動き、注文は成立しない。
注文はクローズされず、修正され、ストップロス水準が下げられる。その結果、せっかく良い方向に進んだのに、採算が合わなくなってしまったのです。
私は、if( Bid-OrderOpenPrice()>Point*TrailingStop)をチェックすることでこれを防いでいると考えていましたが、どうやら間違っているようです。何かアドバイスはありますか?
Доброго времени суток. Проблема с Trailing Stop'ом.
Не совсем корректно модифицируются ордера. Получается так,что уровень Stop Loss следует за ценой независимо от движения цены.
Допустим открывается ордер на покупку. Цена растет,срабатывает trailing stop и стоп лосс подтягивается. Потом цена пошла в обратном направлении,ордер не закрывается,
ордер не закрывается, а модифицируется и понидается уровень stop loss'a. В итоге сделка становится убыточной, хотя открылась она в правильном направлении.
Предполагал, что от этого предохраняет проверка if( Bid-OrderOpenPrice()>Point*TrailingStop ), но видимо это не так. Что посоветуете?