Добрый день! Подскажите, как это может быть, я в одном цикле выбираю ордер, по-времини перебираю, какой ордер последний, и запоминаю его так ticket = OrderTicket();
в данном случае допустим это цифра два. Чуто позже if (ticket>-1){ OrderSelect(ticket,SELECT_BY_TICKET,MODE_HISTORY);
и зачастую получаю ошибку 4105 - ордер не выбран!!
А потому, что ордер еще не закрыт. Его нет в MODE_HISTORY, он ещё в MODE_TRADES.
for( i=0;i<=OrdersHistoryTotal();i++){
OrderSelect(i ,SELECT_BY_POS,MODE_HISTORY);
if (OrderMagicNumber( )== magic) { if(OrderSymbol()== Symbol()) {
current = OrderOpenTime(); Alert ( " current = OrderOpenTime(); ", current);Alert ( " max ", max );
if (current > max)
{
max = current;
ticket = OrderTicket(); Alert ( " ticket = OrderTicket(); ", ticket );
}}}}
if (ticket>-1){
OrderSelect( ticket,SELECT_BY_TICKET,MODE_HISTORY);Alert ("SELL Select error HISTORYticket ", GetLastError( ) ) ;
Што вы! Почему же нет? Открытых ордеров на момент перебора не было! Может я не понял?
И цикл перебора ведь тоже на истории! Там где я в нем переменной int ticket присваиваю
А ругается, извините, так 2012.02.04 11:28:47 2011.12.06 16:35 антиб EURUSD,M30: Alert: SELL Select error HISTORYticket 4105
Когда же попадает он из MODE_HISTORY, в MODE_TRADES ??
А главное, я же ведь его же, этот же ордер, так же на истории отбираю с помощью ордердер селект, и по-первах он же отбирается, иначе б я с ним и работать не смог!! Логики нету!!!!!!Яв шоке..
поделитесь пожалуйста функция расчета максимально допустимого лота, с учетом открытых позиций то есть по эквити. а то стандартная считает риск но если есть сделки денег не хватает на открытие
T-G: поделитесь пожалуйста функция расчета максимально допустимого лота, с учетом открытых позиций то есть по эквити. а то стандартная считает риск но если есть сделки денег не хватает на открытие
В простейшем случае так:
double Klots = 0.1; //коэфф. риска (определяет желаемый размер лота от максимально возможного в данный момент.)
Lots=NormalizeDouble(Klots*AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED),2);Lots=MathMax(MarketInfo(Symbol(),MODE_MINLOT),Lots);
это максимальная глубина истории по инструменту в конторе Альпари, при ее закачке через F2 - я проверял, т.е. имеет вид содержимо вкладки "Эксперты" клиентского терминала - вроде похоже на правду:
При использовании этой же конструкции скрипта у себя в советнике на том же временном интервале на том же периоде графика М5 считает не правильно, т.е.
пишет совсем другие (меньшие, чем в скрипте) числа или вообще 0. В чем может быть ошибка или это какая-то несогласованность истории? Благодарю.
Т.е. я стартую в тестере совом позже расчетного времени для нахождения безотката, по идее - все нормально и цифры по итогам работы скрипта и сова - должны быть ОДИНАКОВЫ... В чем может быть ошибка?
В советнике имею следующий блок (Счетчик событий):
if (isCloseLastPosByStop()==True) //Если последний ордер закрылся Стопом
ВОПРОС: как вместо вывода информации на экран записать данные в файл (эксель)?
Добрый день! Подскажите, как это может быть, я в одном цикле выбираю ордер, по-времини перебираю, какой ордер последний, и запоминаю его так ticket = OrderTicket();
в данном случае допустим это цифра два. Чуто позже if (ticket>-1){
OrderSelect(ticket,SELECT_BY_TICKET,MODE_HISTORY);
и зачастую получаю ошибку 4105 - ордер не выбран!!
А потому, что ордер еще не закрыт. Его нет в MODE_HISTORY, он ещё в MODE_TRADES.
Што вы! Почему же нет? Открытых ордеров на момент перебора не было! Может я не понял?
И цикл перебора ведь тоже на истории! Там где я в нем переменной int ticket присваиваю
А ругается, извините, так 2012.02.04 11:28:47 2011.12.06 16:35 антиб EURUSD,M30: Alert: SELL Select error HISTORYticket 4105
Когда же попадает он из MODE_HISTORY, в MODE_TRADES ??
А главное, я же ведь его же, этот же ордер, так же на истории отбираю с помощью ордердер селект, и по-первах он же отбирается, иначе б я с ним и работать не смог!! Логики нету!!!!!!Яв шоке..
Што вы! Почему же нет? Открытых ордеров на момент перебора не было! Может я не понял?
И цикл перебора ведь тоже на истории! Там где я в нем переменной int ticket присваиваю
А ругается, извините, так 2012.02.04 11:28:47 2011.12.06 16:35 антиб EURUSD,M30: Alert: SELL Select error HISTORYticket 4105
Когда же попадает он из MODE_HISTORY, в MODE_TRADES ??
помогите вставить стоп-лосс в советник
пожалуйста
поделитесь пожалуйста функция расчета максимально допустимого лота, с учетом открытых позиций то есть по эквити. а то стандартная считает риск но если есть сделки денег не хватает на открытие
В простейшем случае так:
Ребята подскажите по такому вопросу:
Вот скрипт поиска максимального размера безотката по зиг-загу от хренфх - см. здесь:
Бросаю его на график инструмента на М5 - считает нормально при умолчательном временном диапазоне
это максимальная глубина истории по инструменту в конторе Альпари, при ее закачке через F2 - я проверял, т.е. имеет вид содержимо вкладки "Эксперты" клиентского терминала - вроде похоже на правду:
При использовании этой же конструкции скрипта у себя в советнике на том же временном интервале на том же периоде графика М5 считает не правильно, т.е.
пишет совсем другие (меньшие, чем в скрипте) числа или вообще 0. В чем может быть ошибка или это какая-то несогласованность истории? Благодарю.
Т.е. я стартую в тестере совом позже расчетного времени для нахождения безотката, по идее - все нормально и цифры по итогам работы скрипта и сова - должны быть ОДИНАКОВЫ... В чем может быть ошибка?
Вот так я заряжаю этого скрипта к себе в сова:
Вроде все одно и тоже - в чем может быть ошибка?