При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному STOPLVELу. Естественно, ошибка 130. Причем на большинстве ордеров. Добавил проверку
if (BAL >= 50) { if(MathAbs(Level100-Bid) > stopLevel) return(true); }
где stopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL)/10000.0, то есть 0,0010 при стопе в 10 пунктов. При таком раскладе вобще ни один ордер не открывается. Как быть ?
При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному STOPLVELу. Естественно, ошибка 130. Причем на большинстве ордеров. Добавил проверку
if (BAL >= 50) { if(MathAbs(Level100-Bid) > stopLevel) return(true); }
где stopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL)/10000.0, то есть 0,0010 при стопе в 10 пунктов. При таком раскладе вобще ни один ордер не открывается. Как быть ?
При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному STOPLVELу. Естественно, ошибка 130. Причем на большинстве ордеров. Добавил проверку
if (BAL >= 50)
{
if(MathAbs(Level100-Bid) > stopLevel)
return(true);
}
где stopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL)/10000.0, то есть 0,0010 при стопе в 10 пунктов. При таком раскладе вобще ни один ордер не открывается. Как быть ?
100 - для 5 знаков, соответственно для 4-х будет 10
Проблемы не решает, ибо функция МаркетИнфо всегда будет возвращать 10 (4знака). У моего ДЦ фиксированный стоплевел. Неужели я единственный с такой проблемой ? Какой у вас стоплевел и зависит ли он от волатильности ?
При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному STOPLVELу. Естественно, ошибка 130. Причем на большинстве ордеров. Добавил проверку
if (BAL >= 50)
{
if(MathAbs(Level100-Bid) > stopLevel)
return(true);
}
где stopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL)/10000.0, то есть 0,0010 при стопе в 10 пунктов. При таком раскладе вобще ни один ордер не открывается. Как быть ?
100 - для 5 знаков, соответственно для 4-х будет 10
Проблемы не решает, ибо функция МаркетИнфо всегда будет возвращать 10 (4знака). У моего ДЦ фиксированный стоплевел. Неужели я единственный с такой проблемой ? Какой у вас стоплевел и зависит ли он от волатильности ?
альпарь, 5 знаков
на евробаке постоянно 18, при серьезных новостях подымают до 300 (на минут 30-60), апотом опять 18
При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному STOPLVELу. Естественно, ошибка 130. Причем на большинстве ордеров. Добавил проверку
if (BAL >= 50)
{
if(MathAbs(Level100-Bid) > stopLevel)
return(true);
}
где stopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL)/10000.0, то есть 0,0010 при стопе в 10 пунктов. При таком раскладе вобще ни один ордер не открывается. Как быть ?
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);
Это ИЗМЕНЕННЫЕ начала функций. Далее - по тексту функций
Проблемы не решает, ибо функция МаркетИнфо всегда будет возвращать 10 (4знака). У моего ДЦ фиксированный стоплевел. Неужели я единственный с такой проблемой ? Какой у вас стоплевел и зависит ли он от волатильности ?
альпарь, 5 знаков на евробаке постоянно 18, при серьезных новостях подымают до 300 (на минут 30-60), апотом опять 18
так что нужно просто регулировать значением 100
Допустим текущая цена - 1.3990, ордеров нет. Советник пытается открыть ордер на 1.3995, стоплевел не позволяет. Предложенная вами дополнительная проверка
Проблемы не решает, ибо функция МаркетИнфо всегда будет возвращать 10 (4знака). У моего ДЦ фиксированный стоплевел. Неужели я единственный с такой проблемой ? Какой у вас стоплевел и зависит ли он от волатильности ?
альпарь, 5 знаков
на евробаке постоянно 18, при серьезных новостях подымают до 300 (на минут 30-60), апотом опять 18
так что нужно просто регулировать значением 100
Допустим текущая цена - 1.3990, ордеров нет. Советник пытается открыть ордер на 1.3995, стоплевел не позволяет. Предложенная вами дополнительная проверка
При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному STOPLVELу. Естественно, ошибка 130. Причем на большинстве ордеров. Добавил проверку
if (BAL >= 50)
{
if(MathAbs(Level100-Bid) > stopLevel)
return(true);
}
где stopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL)/10000.0, то есть 0,0010 при стопе в 10 пунктов. При таком раскладе вобще ни один ордер не открывается. Как быть ?
При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному 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
Посмотрите на график торгов:
http://www.alpari.ru/ru/cnews/34316.html
Что скажите?
Рождество 25 Декабря
Посмотрите на график торгов:
http://www.alpari.ru/ru/cnews/34316.html
Что скажите?
Рождество 25 Декабря
касяк в дате, они прошлым годом живут :)
Посмотрите на график торгов:
http://www.alpari.ru/ru/cnews/34316.html
Что скажите?
Рождество 25 Декабря
касяк в дате, они прошлым годом живут :)
При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному 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знака). У моего ДЦ фиксированный стоплевел. Неужели я единственный с такой проблемой ? Какой у вас стоплевел и зависит ли он от волатильности ?
При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному 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
При прогоне по истории советник был замечен в попытках установить ордер на расстоянии < рыночному 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
Я так решил вопрос:
и
Это ИЗМЕНЕННЫЕ начала функций. Далее - по тексту функцийgrandmaster:
Проблемы не решает, ибо функция МаркетИнфо всегда будет возвращать 10 (4знака). У моего ДЦ фиксированный стоплевел. Неужели я единственный с такой проблемой ? Какой у вас стоплевел и зависит ли он от волатильности ?альпарь, 5 знаков
на евробаке постоянно 18, при серьезных новостях подымают до 300 (на минут 30-60), апотом опять 18
так что нужно просто регулировать значением 100
Допустим текущая цена - 1.3990, ордеров нет. Советник пытается открыть ордер на 1.3995, стоплевел не позволяет. Предложенная вами дополнительная проверка
if(... || MarketInfo(Symbol(),MODE_STOPLEVEL)>100) ...;
не отреагирует на расстояние от текущей цены до ближайшего цента, и соответственно не является решением проблемы.
С уважением.
grandmaster:
Проблемы не решает, ибо функция МаркетИнфо всегда будет возвращать 10 (4знака). У моего ДЦ фиксированный стоплевел. Неужели я единственный с такой проблемой ? Какой у вас стоплевел и зависит ли он от волатильности ?альпарь, 5 знаков
на евробаке постоянно 18, при серьезных новостях подымают до 300 (на минут 30-60), апотом опять 18
так что нужно просто регулировать значением 100
Допустим текущая цена - 1.3990, ордеров нет. Советник пытается открыть ордер на 1.3995, стоплевел не позволяет. Предложенная вами дополнительная проверка
if(... || MarketInfo(Symbol(),MODE_STOPLEVEL)>100) ...;
не отреагирует на расстояние от текущей цены до ближайшего цента, и соответственно не является решением проблемы.
С уважением.