[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 49
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Люди, помогите разобраться с кодом: Почему этот советник не выставляет отложник при пресечении MA.
Он будет открывать ордера только начиная со второго. Даже не со второго, а с третьего.Это Вы так задумали?
DhP, Roman, спасибо!!!!!!
Чистка была успешной?
for(j=0; j<OrdersHistoryTotal(); j++)
if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol()==Symbol())
{
datetime ctm=OrderCloseTime();
break;
}
Я хотел бы, что бы следующий ордер по этой бумаге можно было бы открыть только спустя три бара, то есть на четвертом, но не раньше. Как сделать проверку?
Здравствуйте, подскажите пожалуйста. В следующем коде получаю время закрытия последнего ордера для определенной бумаги:
for(j=0; j<OrdersHistoryTotal(); j++)
if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol()==Symbol())
{
datetime ctm=OrderCloseTime();
break;
}
Я хотел бы, что бы следующий ордер по этой бумаге можно было бы открыть только спустя три бара, то есть на четвертом, но не раньше. Как сделать проверку?
А вы уверены, что это последний закрытый? А если это первый встреченный? Вы же из цикла вываливаетесь.
А вы уверены, что это последний закрытый? А если это первый встреченный? Вы же из цикла вываливаетесь.
Я перебираю историю, там же все ордера?
Я перебираю историю, там же все ордера?
вы перебираете историю до первого ордера на символе, после чего break - вываливаетесь из цикла.
Если у вас было 100 ордеров вы увидите только один
Я перебираю историю, там же все ордера?
Вот. Функция вернёт вам номер бара последней закрытой данным советником позиции:
Вызываете, например int BarClose=BarLastClosePose();
В переменной BarClose будет храниться номер бара последней закрытой позиции, либо -1 (если нет таковых). Magic - магик советника - там свою переменную пропишите.
Или удалите эту строчку, если хотите вообще все ордера смотреть (даже те, которые выставил другой советник или вручную сами открыли)
Далее уже по ней сверяете когда можно открыть следующую (через сколько баров)
Вообще цель - это открыть ордер только спустя как минимум три бара, то есть на четвертом, но не раньше, после последнего закрытого ордера по бумаге. Для этого, я перебираю историю и если вижу ордер по этой бумаги из истории, то считаю что он закрыт и последний. Я ошибаюсь в том, что будут выбираться ордера в хронологической последовательности?