ПОМОГИТЕ... МОЖЕТ КТО СТАЛКИВАЛСЯ!!!

 

хочу реализовать проверку в советнике ... если цена ушла в минус на опр. кол-во пунктов тогда выполнить модификацию ордера...

естесно... вписываю в код условие

if (orderopenprice()-ask<point*punkti) - не работает будто такого условия некогда не возникало... хотя цена проходила в убыток и дальше

второй вариант

if(ask<orderopenprice()-point*punkti) - тоже самое

помогите может кто сталкивался с подобным... либо укажите на ошибку ...

Заранее блогадарен...

 

orderopenprice() - как вычисляется ?

 
satop писал(а) >>

orderopenprice() - как вычисляется ?

orderopenprice стандартная команда ... означает цену по которой ордер был открыт
 

arp_net писал(а) >>

либо укажите на ошибку ...

orderopenprice()-ask для Buy - это не "минус" а очень даже "плюс", не смотря на то что результат вычитания отрицательный - надо проверять в зависимости от типа ордера ;)

 
Кстати перед orderopenprice() необходимо выбрать нужный ордер OrderSelect(), ну это так на всякий случай.
 
arp_net >>:

.... естесно... вписываю в код условие

if (orderopenprice()-ask<point*punkti) - не работает будто такого условия некогда не возникало... хотя цена 

второй вариант

if(ask<orderopenprice()-point*punkti) - тоже самое

 

Заранее блогадарен...

Оч. редко, но  бывает так, что вдруг заглючит приоритет действий.

Поэтому я всегда ставлю скобки :

if (  (orderopenprice()-ask ) <point*punkti) 

 
arp_net >>:

хочу реализовать проверку в советнике ... если цена ушла в минус на опр. кол-во пунктов тогда выполнить модификацию ордера...

естесно... вписываю в код условие

if (orderopenprice()-ask<point*punkti) - не работает будто такого условия некогда не возникало... хотя цена проходила в убыток и дальше

второй вариант

if(ask<orderopenprice()-point*punkti) - тоже самое

помогите может кто сталкивался с подобным... либо укажите на ошибку ...

Заранее блогадарен...


Посмотрите функцию killloss   в "Библиотеке функций и советники для трейлинга/Юрий Дзюбан" - поиском в кодебазе в библиотеках...
Файлы:
 

Доброго времени суток!

А может сделать все намного проще? Примерно так:

extern int Loss=0;                  //Убыток в пунктах от точки входа в рынок.  

double OrdOpPrice=0.0, OrdProf=0.0, DoubleLoss=0.0, MedPrice=0.0, Delta=0.0;

OrdOpPrice=OrderOpenPrice();        //Точка входа в рынок.   

OrdProf=OrderProfit();              //Прибыль\Убыток по позиции.  

DoubleLoss=(Loss*Point);            //Потеря в пунках переведенная из вида 'int' в 'double'.  

MedPrice=((Bid+Ask)/2);             //Усредненная цена.  

Delta=MathAbs(OrdOpPrice-MedPrice); //Расстояние от точки входа до усредненной цены.

//Если позиция убыточна и усредненная цена ушла от точки входа в рынок дальше чем допускает переменная 'Loss'.

if (OrdProf<0.0 && Delta>DoubleLoss) {/*Необходимые действия впишите сами*/}


P.S.Чтоб у вас все было и вам за это ничего не было!

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