[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 547
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Только не забывайте что в init() не всегда доступно рыночное окружение
...Я очень благодарен Вам за анализ моего кода. Спасибо что выделили для этого время.
А оператор while работает когда его значение равно true, т.е. получается что значение false он не принимает.
Вопрос к знатокам. В справке про OrderSend() на месте slippage стоит 3. Это для примера на 4-знаковых котировках? Для 5-знаковых можно оставить 3 или надо 30?
Для пятизнаковых надо 30.
Я вставляю такую конструкцию в init() каждого советника, тогда без разницы на 4-х или 5-ти знаках ДЦ, рекомендую:
Добрый день. Подскажите - стоит задачи рисовать вертикальные линии каждую минуту. Как привязать отрисовку не просто к минутам, а к ЦЕНЕ ОТКРЫТИЯ минутки. Сложность в том, что цену открытия минутки нужно идентифицировать на нестандатном тайме, т.е. не минутном. Написал такой кусок кода, но как ввести туда цену открытия минутки, если индюк будет висеть на нестандартном тайме не понимаю
new_Minute=TimeMinute(Time[i]) != TimeMinute(Time[i+1]); // новая минута
Ind_Buffer_0[i]=0
if(new_Minute && Period()<30 ) Ind_Buffer_0[i]=max;
...и дальше уже стандартная отрисовка через объекты.
Может кто подскажет, что можно сделать, если можно вообще.
Добрый день. Подскажите - стоит задачи рисовать вертикальные линии каждую минуту. Как привязать отрисовку не просто к минутам, а к ЦЕНЕ ОТКРЫТИЯ минутки. Сложность в том, что цену открытия минутки нужно идентифицировать на нестандатном тайме, т.е. не минутном. Написал такой кусок кода, но как ввести туда цену открытия минутки, если индюк будет висеть на нестандартном тайме не понимаю
new_Minute=TimeMinute(Time[i]) != TimeMinute(Time[i+1]); // новая минута
Ind_Buffer_0[i]=0
if(new_Minute && Period()<30 ) Ind_Buffer_0[i]=max;
...и дальше уже стандартная отрисовка через объекты.
Может кто подскажет, что можно сделать, если можно вообще.
В while надо бы поставиь условие, которое как мин. может принимать два значения, напр. флаг (true или false). Если же стоит константа (true), а не условие тогда while не нужен. Уберите while (true) и скобки к нему и будет тот же результат.
Если убрать оператор while то как будет отрабатывать оператор continue;
Ведь нам необходимо в случае ошибки повторить проверку условий и открытие ордеров.
Оператор continue передает управление в начало ближайшего внешнего оператора цикла while или for, вызывая начало следующей итерации.
Может я что-то не понимаю?
Добрый день.
У меня торговая стратегия сформирована на открытие отложенных ордеров по уже сформированному предпоследнему бару [номер 1]. Т.е. он открывает позиции (отложенные ордера на buystop И sellstop), и они сработают, если цена вышла за границы максимума/минимума ценового диапазона 1-го бара на 20 пунктов (Цены открытия).
При этом в ней также прописано автоматическое удаление не сработавших отложенных ордеров, основанное на следующем: Если сформировался новый бар под номером 1, то соответственно цена открытия отложенного ордера/ордеров не совпадет с максимумом/минимумом нового текущего бара номер 1 +/- 20 пунктов (вероятнее всего, так как редко идут совпадения максимумов/минимумов двух рядом стоящих баров) .
Но вот почему-то бывает так, что он сначала откроет обе позиции, но через несколько секунд закроет одну из них (хотя новый бар под номером 1 еще не сформировался).
Господа эксперты, я новичок и, возможно, не учитываю какие-то нюансы. Подскажите пожалуйста где возможна ошибка.
Когда сравниваете дробные числа, их надо нормализовать до значащей цифры.
Когда удаляете ордера, отсчет надо вести с конца, а не с начала.