Стоп-лосс не в пунктах, а по уровню Moving Average?

 

Возник такой вопрос: можно ли в советнике указать первоначальный стоп-лосс не в количестве пунктов, а на уровне МА? (Параметры МА: 5, EMA, Close, сдвиг 5) Спасибо.


 
Вопрос мягко говоря странный. Вы вообще что ожидаете услышать, что так нельзя? :)
 
Жаль. А так: "Если нельзя, но очень хочется, то можно"? :)
 
sergeev >>:
Вопрос мягко говоря странный. Вы вообще что ожидаете услышать, что так нельзя? :)

Не ну хватит прикалываться, человек похоже искренне считает что в советнике стоп и профит устанавливается в пунктах от открытия,

to Maniac

Молодой человек не переживайте вы так, стопы и профиты при установке ордера выставляються именно в уровнях, а в пунктах их ставят через преобразование в уровень. Те в настройках в пунктах а при установке это всё переводиться в уровни.

 
Maniac писал(а) >>

Возник такой вопрос: можно ли в советнике указать первоначальный стоп-лосс не в количестве пунктов, а на уровне МА? (Параметры МА: 5, EMA, Close, сдвиг 5) Спасибо.

можно

 
В чем вопрос?
Как рассчитать МА?
stoploss - Цена закрытия позиции при достижении уровня убыточности
МА это тоже цена.
Здесь примеры.
 
Parabellum >>:
В чем вопрос?...

С вами, программистами каши не сваришь. :)) Юзер, он должен суть схватить, тогда и учебник не будет казаться абракадаброй.

При установке ордера функцией OrderSend(..), в ней есть параметр double stoploss, который определяет, на каком ценовом уровне будет установлен стоплосс ордера.

Обычно этот уровень жестко задается с помощью внешней переменной. Если же вам необходим стоплосс на каком-то определенном уровне, вы рассчитываете этот уровень, записываете его в переменную, а потом при открытии вставляете эту переменную в функцию OrderSend(..) на место параметра stoploss. Тогда при открытии ордера стоплосс будет установлен на необходимом вам ценовом уровне.

Например:


//рассчитываем значение МА с необходимыми параметрами и помещаем результат в переменную UrovenStopa
double UrovenStopa = iMA(NULL,0,5,5,MODE_EMA,PRICE_CLOSE,SignalBar);
//открываем ордер buy функцией OrderSend(...), используя на месте параметра stoploss нашу переменную UrovenStopa
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,UrovenStopa,Ask+takeprofit*Point,"Комментарий",16384,0,Green);
//ордер откроется по цене Ask со стоплоссом на ценовом уровне UrovenStopa
 

Забыли

UrovenStopa=NormalizeDouble(UrovenStopa,Digits);
 
Svinozavr >>:

Забыли...

Забыл. Пытался принцип товарищу по несчастью объяснить.

 

Товарищ видимо имел в виду Stop для внутреннего употребления.

extern double N=80;

---------------------------------------------------

if (MA_1<=OrderOpenPrice()-N*Point)

{ Cls_S=true;}

 
Sta2066 >>:

Товарищ видимо имел в виду..

Мы, похоже, тут уже третий день сами с собой разговариваем. Нехорошо это, может психику повредить :))

Причина обращения: