Одновременное открытие отложеных ордеров разных типов(Помогите новачку, пожалуйста)
1-Для начала нужно получить 4 цены для каждого из типов ордеров.
2-Если все 4 цены получены
3-Проверяем есть ли наши ордера, ордера нашего советника
4-Выставляем по существующим ценам ордера
В Вашем случае
Total=0; int bl=0,sl=0; // Количество ордеров for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер { if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий { // Анализ ордеров: if (OrderSymbol()!=Symb)continue; // Не наш фин. инструм if (OrderType()>1&&OrderMagicNumber()==Magic) // Попался отложенный { Total++; if (OrderType()==OP_BUYLIMIT ) bl++; if (OrderType()==OP_SELLLIMIT) sl++; } } } if (bl==0)//открыть первый байлимит if (bl==1)//если уже есть один бай лимит открыть еще if (sl==0) if (sl==1)
VOLDEMAR:
1-Для начала нужно получить 4 цены для каждого из типов ордеров.
2-Если все 4 цены получены
3-Проверяем есть ли наши ордера, ордера нашего советника
4-Выставляем по существующим ценам ордера
В Вашем случае
Подскажи пожалуйста, что с этим делать, я это копировал в учет ордеров, перед этим удалив то что было, но ордера теперь вообще не открываются:(
Я так понял, это:
Total=0; int bl=0,sl=0; // Количество ордеров for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер { if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий { // Анализ ордеров: if (OrderSymbol()!=Symb)continue; // Не наш фин. инструм if (OrderType()>1&&OrderMagicNumber()==Magic) // Попался отложенный { Total++; if (OrderType()==OP_BUYLIMIT ) bl++; if (OrderType()==OP_SELLLIMIT) sl++; } } }
Вставить в функцию учата ордеров!
А вот это:
if (bl==0)//открыть первый байлимит if (bl==1)//если уже есть один бай лимит открыть еще if (sl==0) if (sl==1)Это куда? В функцию открытия ордеров?
Попробуйте так... Код непроверял, но вроде все ОК
exp=0;// Время истечения отложенных ордеров Longsl=Delta;Longtp=Delta;// Напишите свои вычисления стоплоссов/тейкпрофитов или 0 если их не используете-при этом закоментируйте строку ниже Longsl=NormalizeDouble(Bid-Longsl-StartDelta,Digits);Longtp=NormalizeDouble(Bid+Longtp-StartDelta,Digits);// StartDelta - отступ до открытия отложенников pr=Delta;price=Ask-StartDelta; LongLots=StartLots; for(i=1;i<=N;i++)// N - Кол-во отложенников сколько хотим открыть { OpenPosition(Symbol(),OP_BUYLIMIT,LongLots,price,Longsl,Longtp,MAGIC,exp);// функция открытия ордеров от KimIV price=NormalizeDouble(price-pr,Digits); pr=pr*Kdelta;// Если каждый последующий хотим открыть на расстоянии меньше/больше чем предыдущий. Kdelta=1 открываем на одном и том=же расстоянии. LongLots=NormalizeDouble(LongLots*Klot,2);if(LongLots<0.01)LongLots=0.01;// Тоже самое с лотами } Shortsl=Delta;Shorttp=Delta;// Напишите свои вычисления стоплоссов/тейкпрофитов или 0 если их не используете-при этом закоментируйте строку ниже Shortsl=NormalizeDouble(Bid+Shortsl+StartDelta,Digits);Shorttp=NormalizeDouble(Bid-Shorttp+StartDelta,Digits);// StartDelta - отступ до открытия отложенников pr=Delta;price=Bid+StartDelta; ShortLots=StartLots; for(i=1;i<=N;i++)// N - Кол-во отложенников сколько хотим открыть { OpenPosition(Symbol(),OP_SELLLIMIT,ShortLots,price,Shortsl,Shorttp,MAGIC,exp);// функция открытия ордеров от KimIV price=NormalizeDouble(price+pr,Digits); pr=pr*Kdelta;// Если каждый последующий хотим открыть на расстоянии меньше/больше чем предыдущий. Kdelta=1 открываем на одном и том=же расстоянии. ShortLots=NormalizeDouble(ShortLots*Klot,2);if(ShortLots<0.01)ShortLots=0.01;// Тоже самое с лотами }

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- Форексный VPS бесплатно на 24 часа
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как сделать так, что при выполнение одного условия открывались два типа отложеных ордеов(BuyLimit и SellLimit, по 4 штуки с заданым шагом) в разные стороны?
Помогите привести этот фрагмент в порядок, используются только Limit ордера.
Этот код почему то не работает:(
Я не эксперт в отрасли програмирования, так что пожалуйста не судите строго:)
Зарание благодарю:)