с ними невозможно работать пока не нормализуешь
поэтому применяем NormalizeDouble( iSar(),Digits);
В одной из моих конструкций, (эксперт работает по Ценам Открытия) неплохо, бывает, работает вот такой блок закрытия позиций :
Надеюсь, это примерно то, что вы хотите. Может быть, есть резон также использовать рекомендацию от Korey в сообщ. выше.....
Закрытие позиции по iSAR отображается на графике зелёным треугольничиком
Во внешние параметры вставляем
extern bool AutoClose = true;//Выключатель автозакрытия позиций extern double Maximum_Parabollic =0.2; extern double STEP_Parabollic =0.02;
А потом в функцию int start() -
//ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ блок ЗАКРЫТИЯ ПОЗИЦИЙ ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ if (AutoClose) { //если выключатль включен //---------------------------------------------------------------------- // for (int v=0; v<OrdersTotal(); v++) { for ( int v = OrdersTotal() - 1; v >= 0; v -- ) { if (OrderSelect(v, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol()) { //----------------------------------------------------------------------- if ((OrderType() == OP_BUY) && (OrderMagicNumber()==Magic)) { if ( (iSAR(NULL,0,STEP_Parabollic, Maximum_Parabollic ,1)>Close[1]) && (iSAR(NULL,0,STEP_Parabollic, Maximum_Parabollic ,2)<Close[2]) ) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);//закрываем позицию prevtime = Time[1]; // return(0); // выходим } } //------------------------------------------------------------------------- if ((OrderType() == OP_SELL) && (OrderMagicNumber()==Magic)) { if ( (iSAR(NULL,0,STEP_Parabollic,Maximum_Parabollic ,1)<Close[1]) && (iSAR(NULL,0,STEP_Parabollic,Maximum_Parabollic,2)>Close[2]) ) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);//закрываем позицию prevtime = Time[1]; // return(0); // выходим } } //------------------------------------------------------- } // Symbol() } // select } //total }//if (AutoClose) { //ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ Конец блока Закрытия позиций ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ
И ещё. Вот в этом адресе вы можете посмотреть про закрытие позиций по сигналу индикатора -
'Закрытие позиций. По сигналу индикатора.'
narvere, Исходя из своего скромного опыта, (по секрету вам скажу-) закрытие позиций по iSAR иной раз увеличивает конечный профит примерно на 25 %, если сигнал закрытия брать со старшего тф !
Т.е. если вы работаете на н1, то попробуйте закрываться по
iSAR(NULL,240,STEP_Parabollic, Maximum_Parabollic,....)
Help me!
Привет всем!
Попытался я сделать по вашим инструкциям. За что вам спасибо. Вот что у меня получилось. Для начала хочу выводить значение SAR на экран. Пока машина выдаёт ноль (0) при каждом тике. Как подправить?
//--------------------------------------------------------------------
// Create.mq4
//
extern double Maximum_Parabollic =0.2;
extern double STEP_Parabollic =0.03;
double iSar;
//--------------------------------------------------------------------
int init()
{
double iSar;
}
//--------------------------------------------------------------------
int start() // Спец. ф-ия start()
{
NormalizeDouble ((iSAR(NULL,0,STEP_Parabollic, Maximum_Parabollic,0))
&& (iSAR(NULL,0,STEP_Parabollic, Maximum_Parabollic,1)),Digits);
Alert(iSar);
}
//--------------------------------------------------------------------
int deinit() // Спец. ф-ия deinit()
{
}
//--------------------------------------------------------------------
Я не знаю, как вам это подправить. Похоже, вы не определились ещё, что вы сами хотите изготовить.
Советник или индикатор? То, что вы написали, не совсем отвечает (мягко говоря) положениям MQL
Но сразу отмечу, - вовсе не нужно так задавать выражение double iSar во внешн. параметрах и в функции int init()
;
Если в советнике вам надо вывести на экран текущее значение iSar; то в функцию int start() поставьте
int start() // Спец. ф-ия start() { //-------------------------------------------------------------------- double SAR = iSAR(NULL,0,STEP_Parabollic, Maximum_Parabollic,0); Comment("_SAR=",SAR );И в левом верхнем углу графика вы найдёте искомое...
Я не знаю, как вам это подправить. Похоже, вы не определились ещё, что вы сами хотите изготовить.
Советник или индикатор? То, что вы написали, не совсем отвечает (мягко говоря) положениям MQL
Но сразу отмечу, - вовсе не нужно так задавать выражение double iSar во внешн. параметрах и в функции int init()
;
Если в советнике вам надо вывести на экран текущее значение iSar; то в функцию int start() поставьте
И в левом верхнем углу графика вы найдёте искомое...Спасибо rid, Вы очень помогли. Индикатор заработал. Теперь попробую из него советника сделать.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите, как сделать, чтобы выводилось значение Volume iSar. Что-бы в дальнейшем испльзовать его в качестве Stop Loss.
Спасибо!