[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 602

 
if(OrderTakeProfit()!=0&&OrderTakeProfit()!=OrderOpenPrice()+2*kio*Point&&Bid>OrderOpenPrice()+50*kio*Point)
               OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()+2*kio*Point,0);
всем бодрого время суток. подскажите что тут не так пишет Ошибку№1 как исправить?  спасибо!
 
laveosa:
всем бодрого время суток. подскажите что тут не так пишет Ошибку№1 как исправить?  спасибо!


Вы пытаетесь выставить тейкпрофит к ордеру размером в два шага, когда цена больше того же уровня на 50 шагов в том же направлении. В этом случае он уже будет не тейкпрофитом, а стоплоссом. Тейкпрофит для рыночного ордера Buy -- все, что выше текущей цены Ask, а не цены установки ордера. Для Sell -- наоборот.  

И нормализуйте цены. 

 
r772ra:

Я думаю все дело в функции  GetPriceToInput().

 Верно. В общем, там рассчитывается цена лимитника. А нужно, как оказалось, условие, чтобы  GetPriceToInput() было ниже аска для баев, и выше бида для селов, соответственно. Вот этой проверки не было, потому и появлялась ошибка 130 иногда.
 
r772ra:

Пробуйте брать значения индикатора с 1 и 2 бара. Как-то так.

мне нужно как раз на 1 и 0, но здесь не в этом проблема: ордера (обведенные красным), почему они открываются??? для них по графику нет критериев срабатывания ((.
 
Equilibrium:

мне нужно как раз на 1 и 0, но здесь не в этом проблема: ордера (обведенные красным), почему они открываются??? для них по графику нет критериев срабатывания ((.

Чтобы ответить более точно, нужно смотреть код советника. Но обычно такое случается когда при написании советника не учитываются некоторые особенности работы советников с вызываемыми индикаторами.  Советники сами не рассчитывают значения индикаторов,а берут их из индикаторных буферов готовыми. Поэтому если надо, например,запоминать предыдущие значения индикатора, или еще что нибудь, что делает сам индикатор.все это надо предусматривать в советнике. По крайней мере в кодобазе мне такие встречались.Ну и еще бывают "кривые" индикаторы, хотя у вас, вроде, стандартный стоххастик и к нему это не относится.
 
rigonich:

Чтобы ответить более точно, нужно смотреть код советника. Но обычно такое случается когда при написании советника не учитываются некоторые особенности работы советников с вызываемыми индикаторами.  Советники сами не рассчитывают значения индикаторов,а берут их из индикаторных буферов готовыми. Поэтому если надо, например,запоминать предыдущие значения индикатора, или еще что нибудь, что делает сам индикатор.все это надо предусматривать в советнике. По крайней мере в кодобазе мне такие встречались.Ну и еще бывают "кривые" индикаторы, хотя у вас, вроде, стандартный стоххастик и к нему это не относится.


Любые индикаторы, и стандартные в том числе, на 0 баре перерисоваются , поэтому и бывают ложные сигналы.

Совет... если возникли подобные вопросы, есть такая функция:

bool WindowScreenShot( string filename, int size_x, int size_y, int start_bar=-1, int chart_scale=-1, int chart_mode=-1)
Сохраняет изображение текущего графика в файле формата GIF. В случае неудачи возвращает FALSE. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Скриншот сохраняется в папке каталог_терминала\experts\files (каталог_терминала\tester\files в случае тестирования эксперта) или ее подпапках. 

 
r772ra:


Любые индикаторы, и стандартные в том числе, на 0 баре перерисоваются , поэтому и бывают ложные сигналы.

Совет... если возникли подобные вопросы, есть такая функция:

bool WindowScreenShot( string filename, int size_x, int size_y, int start_bar=-1, int chart_scale=-1, int chart_mode=-1)
Сохраняет изображение текущего графика в файле формата GIF. В случае неудачи возвращает FALSE. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Скриншот сохраняется в папке каталог_терминала\experts\files (каталог_терминала\tester\files в случае тестирования эксперта) или ее подпапках. 


Вообще то не любые, а некоторые и не только на нулевом, но в общем в том, что работать на нулевом баре -- "себе дороже" я с вами совершенно согласен.

Чего то я туплю. Никак не могу понять, как скринншот может помочь решить проблему? 

 
rigonich:


Вообще то не любые, а некоторые и не только на нулевом, но в общем в том, что работать на нулевом баре -- "себе дороже" я с вами совершенно согласен.

Чего то я туплю. Никак не могу понять, как скринншот может помочь решить проблему? 


WindowScreenShot делает снимок графика, это я думаю понятно. Если прописать ее сразу после функции открытия позиции,

 

ну понимаете, возник вопрос А ПОЧЕМУ ??????   Смотрим фото.  

 
r772ra:


WindowScreenShot делает снимок графика, это я думаю понятно. Если прописать ее сразу после функции открытия позиции,

 

ну понимаете, возник вопрос А ПОЧЕМУ ??????   Смотрим фото.  


Есть такой помощник .
 
r772ra:

Есть такой помощник .

Понял. Спасибо.Интересно, надо будет попробовать.