Советники: DVD Level - страница 77

 
grandmaster:
Tiburond:
grandmaster:

При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному STOPLVELу. Естественно, ошибка 130. Причем на большинстве ордеров. Добавил проверку

if (BAL >= 50)
{
if(MathAbs(Level100-Bid) > stopLevel)
return(true);
}

где stopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL)/10000.0, то есть 0,0010 при стопе в 10 пунктов. При таком раскладе вобще ни один ордер не открывается. Как быть ?

можно так сделать:

изменить строку

if(!ValidTime()) return(0);

на

if(!ValidTime() || MarketInfo(Symbol(),MODE_STOPLEVEL)>100) return(0);

100 - для 5 знаков, соответственно для 4-х будет 10


Проблемы не решает, ибо функция МаркетИнфо всегда будет возвращать 10 (4знака). У моего ДЦ фиксированный стоплевел. Неужели я единственный с такой проблемой ? Какой у вас стоплевел и зависит ли он от волатильности ?

альпарь, 5 знаков
на евробаке постоянно 18, при серьезных новостях подымают до 300 (на минут 30-60), апотом опять 18

так что нужно просто регулировать значением 100

 
Tiburond:
grandmaster:
Tiburond:
grandmaster:

При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному STOPLVELу. Естественно, ошибка 130. Причем на большинстве ордеров. Добавил проверку

if (BAL >= 50)
{
if(MathAbs(Level100-Bid) > stopLevel)
return(true);
}

где stopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL)/10000.0, то есть 0,0010 при стопе в 10 пунктов. При таком раскладе вобще ни один ордер не открывается. Как быть ?

можно так сделать:

изменить строку

if(!ValidTime()) return(0);

на

if(!ValidTime() || MarketInfo(Symbol(),MODE_STOPLEVEL)>100) return(0);

100 - для 5 знаков, соответственно для 4-х будет 10


Проблемы не решает, ибо функция МаркетИнфо всегда будет возвращать 10 (4знака). У моего ДЦ фиксированный стоплевел. Неужели я единственный с такой проблемой ? Какой у вас стоплевел и зависит ли он от волатильности ?

альпарь, 5 знаков
на евробаке постоянно 18, при серьезных новостях подымают до 300 (на минут 30-60), апотом опять 18

так что нужно просто регулировать значением 100

Я так решил вопрос:

void OpenBuyOrder() {
   int err, ticket;
   color myColor = Green;
   
   if (MarketInfo(Symbol(), MODE_STOPLEVEL) > 10) double shift = MarketInfo(Symbol(), MODE_STOPLEVEL);
   else shift = 10;
   
   double myPrice      = NormalizeDouble(Bid - shift*Pnt*10,Digits);

и

void OpenSellOrder() {
   int err, ticket;
   color myColor = Green;
   
   if (MarketInfo(Symbol(), MODE_STOPLEVEL) > 7) double shift = MarketInfo(Symbol(), MODE_STOPLEVEL);
   else shift = 7;
   
   double myPrice      = NormalizeDouble(Bid + shift*Pnt*10,Digits);         
Это ИЗМЕНЕННЫЕ начала функций. Далее - по тексту функций
 
Tiburond:

grandmaster:

 Проблемы не решает, ибо функция МаркетИнфо всегда будет возвращать 10 (4знака). У моего ДЦ фиксированный стоплевел. Неужели я единственный с такой проблемой ? Какой у вас стоплевел и зависит ли он от волатильности ?

альпарь, 5 знаков
на евробаке постоянно 18, при серьезных новостях подымают до 300 (на минут 30-60), апотом опять 18

так что нужно просто регулировать значением 100

Допустим текущая цена - 1.3990, ордеров нет. Советник пытается открыть ордер на 1.3995, стоплевел не позволяет. Предложенная вами дополнительная проверка

 if(... || MarketInfo(Symbol(),MODE_STOPLEVEL)>100) ...;

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

С уважением. 

 
grandmaster:
Tiburond:

grandmaster:

Проблемы не решает, ибо функция МаркетИнфо всегда будет возвращать 10 (4знака). У моего ДЦ фиксированный стоплевел. Неужели я единственный с такой проблемой ? Какой у вас стоплевел и зависит ли он от волатильности ?

альпарь, 5 знаков
на евробаке постоянно 18, при серьезных новостях подымают до 300 (на минут 30-60), апотом опять 18

так что нужно просто регулировать значением 100

Допустим текущая цена - 1.3990, ордеров нет. Советник пытается открыть ордер на 1.3995, стоплевел не позволяет. Предложенная вами дополнительная проверка

if(... || MarketInfo(Symbol(),MODE_STOPLEVEL)>100) ...;

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

С уважением.

Читай ниже. Решено однозначно
 

Всем спасибо )) я разобрался. У меня не открывались только СЕЛЛ ордера, которые =7*Пнт*10. Изменил 7 на 10, теперь они равны стоплевелу. 

 

Подскажите, после ордера

2010.12.21 19:19buy0.01eurusd1.309451.288451.311252010.12.22 01:481.311250.000.00-0.011.80


больше никаких сделок не было?

И ещё для уточнения.

на какой цене выставится отложенник, если цена будет правильно подходить к уровню, например, 1.3100 ?

Допустим, цена подходит к некоторому уровню и через некоторое время достигла этот уровень. На этом уровне выставляется отложенник с ТР=1.31125, SL=1.28845 ... при этом сама стоимость открытия будет равна 1.30945. Но ведь это отложенник! Значит должна быть такая цена, при достижении которой выставляется отложенник. Вот и хочу узнать, какая это цена?

 
grandmaster:

Всем спасибо )) я разобрался. У меня не открывались только СЕЛЛ ордера, которые =7*Пнт*10. Изменил 7 на 10, теперь они равны стоплевелу.

А что, уже стопы изменились?
 
Подскажите торговать в forex4you будет ?
 
Вот результаты теста по eur/usd на 1часовом со стандартними настройками с 01.01.2009 по 27.11.2010 http://gregory-blog.org.ua/uploads/StrategyTester.htm
 
grixan:
Вот результаты теста по eur/usd на 1часовом со стандартними настройками с 01.01.2009 по 27.11.2010 http://gregory-blog.org.ua/uploads/StrategyTester.htm


Все верно. Только у автора чуток другие настройки были "AccountIsMini=true; MoneyManagement=true; UseTrailingStop=true; UseAddOrder=true".

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