[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 895
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
я же писал - не воспринимайте это через чур. ведь мы не для ссор тут находимся. Мне ведь тоже не нравится, когда кто то отказывается помочь - то есть сам за меня решает, надо мне совет или надо почитать книгу. Как говорится - умничать!!
Еще раз ребята прошу не принимать это агрессивно или эта моя просьба все же вызывает противоречие, если да, то больше ее писать не буду.
Писать и спрашивать вам никто не вправе запретить... А вот почитать то, с чего многие тут начинали - полезно. И вопросы мы тоже задаём, но, ИМХО, совсем другие...
Вам не отказываются помочь - вам дают источник знаний. Чем вам книга СК не в помощь???????????????
Чем вам полностью рабочие функции Игоря Кима не понравились??????????
Сначала я дал вам ссылку на ветку Игоря - бери-нехочу... Пользуйтесь, вставляйте в свой код. Из них как из кирпичиков можно УЙМУ различных полностью рабочих советников собрать...
Вы же что начали с ними делать?
Следующим вашим постом было совершенно непонятная конструкция, ... сваленный в кучу код, в котором и инит и старт и деинит и все функции были практически в строчку записаны...
Я предложил вам ознакомиться с модульным программированием, дал ссылку на учебник...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Вы мне в ответ попросили выложить этот учебник сюда (!) в эту ветку !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ЗАЧЕМ????????????????????
![](https://c.mql5.com/mql4/forum/2010/10/ylqklq_small.gif)
У вас огромное множество различных обучающих материалов перед глазами...
Но, по вашему мнению, все срочно должны бросить свои дела и встать в очередь за ответом на ваш вопрос. А ответ-то, по сути, лежит у вас перед глазами
Спасибо.
Писать и спрашивать вам никто не вправе запретить... А вот почитать то, с чего многие тут начинали - полезно. И вопросы мы тоже задаём, но, ИМХО, совсем другие...
Вам не отказываются помочь - вам дают источник знаний. Чем вам книга СК не в помощь??????????????? Ответ - в помощь!!!
Чем вам полностью рабочие функции Игоря Кима не понравились?????????? Ответ -тем что их все долго собирать и перебирать.
Сначала я дал вам ссылку на ветку Игоря - бери-нехочу... Пользуйтесь, вставляйте в свой код. Из них как из кирпичиков можно УЙМУ различных полностью рабочих советников собрать...
Вы же что начали с ними делать? вставил и использую
Следующим вашим постом было совершенно непонятная конструкция, ... сваленный в кучу код, в котором и инит и старт и деинит и все функции были практически в строчку записаны...
Я предложил вам ознакомиться с модульным программированием, дал ссылку на учебник...Ответ - я его почитал и не до понял
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Вы мне в ответ попросили выложить этот учебник сюда (!) в эту ветку !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ЗАЧЕМ???????????????????? С чего Вы так решили!
У вас огромное множество различных обучающих материалов перед глазами... Ответ - у Вас
Но, по вашему мнению, все срочно должны бросить свои дела и встать в очередь за ответом на ваш вопрос. Ответ -все же по Вашему А ответ-то, по сути, лежит у вас ответ - опять же перед Вашими глазами
Вы выбираете позу по тикету. Но не проверяете ГДЕ именно она есть... Позиция может быть в уже закрытых:
bool OrderSelect( int index, int select, int pool=MODE_TRADES)
Функция выбирает ордер для дальнейшей работы с ним. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметр pool игнорируется, если ордер выбирается по номеру тикета. Номер тикета является уникальным идентификатором ордера. Чтобы определить, из какого списка выбран ордер, необходимо проанализировать его время закрытия. Если время закрытия ордера равно 0, то ордер является открытым или отложенным и взят из списка открытых позиций терминала. Отличить открытую позицию от отложенного ордера можно по типу ордера. Если время закрытия ордера не равно 0, то ордер является закрытым или удаленным отложенным и был выбран из истории терминала. Отличить закрытый ордер от удаленного отложенного также можно по типу ордера.пишет ошибка 4051 не верная функция !!!!!
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
n++;
}
}
if (total == 1)
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k,SELECT_BY_POS, MODE_TRADES))
{
//Alert("ордер есть ", k);
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("ошибка ", GetLastError());
}
}
}
}}
return(0);
я скоро поседею и умру если не решу данный вопрос
пишет ошибка 4051 не верная функция !!!!!
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
n++;
}
}
if (total == 1)
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k,SELECT_BY_POS, MODE_TRADES))
{
//Alert("ордер есть ", k);
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("ошибка ", GetLastError());
}
}
}
}}
return(0);
я скоро поседею и умру если не решу данный вопрос
Этого вам будет с избытком :)
Большое спасибо, среди констант искать не догадался.
пишет ошибка 4051 не верная функция !!!!!
зачем
if (total == 1)
{
for (int k=total-1; k>=0; k--)
{
????
чет, вообще логики не наблюдаю -цикл внутри условия не всегда выполняться будет
пишет ошибка 4051 не верная функция !!!!!
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
n++;
}
}
if (total == 1)
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k,SELECT_BY_POS, MODE_TRADES))
{
//Alert("ордер есть ", k);
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("ошибка ", GetLastError());
}
}
}
}}
return(0);
я скоро поседею и умру если не решу данный вопрос
У вас в переменной k находится номер позиции, а в функцию OrderModify() первым её параметром нужно передавать ТИКЕТ ордера.
Перед модификацией возьмите тикет позы, например int ticket = OrderTicket(); и вместо k поставьте ticket
Что-то где-то как-то так... Писал на коленке, не проверял ничего - только идея... Даже в код ваш не вникал.
зачем
if (total == 1)
{
for (int k=total-1; k>=0; k--)
{
????
чет, вообще логики не наблюдаю -цикл внутри условия не всегда выполняться будет
Игорь, тут вообще смысл не понятен...
Если общее количество ордеров равно один (total==1), то цикл от нуля (total-1) до нуля k>=0
Ты че-нить понимашь????? Я тоже... :))
Привет.
такой вопрос. я хочу тейк профит выставлять вот таким образом:
double TakeProfit = ((LineIndicator - Ask)/2); // но мне нужно указать, что если эта цифра меньше допустимого значение, то выставляется автоматом минимальное допустимое
значение, а это 10 пунктов.
это был первый момент, а теперь еще вот какой момент :
линия индикатора через определенное время меняет свое расположение. а как сделать, что бы take profit не изменялся, а оставался таким, как был присвоен при открытии?