Нужен отложенник

 
Прошу скинуть. Может у кого уже есть. Нужен советник для торговли на новостях. Чтобы удовлетворял следующим пожеланиям:

Необходимые параметры:

1. Время выставления одновременно BUYSTOP и SELLSTOP вплоть до секунд (одна ячейка для первой новости)
2. Время выставления одновременно BUYSTOP и SELLSTOP вплоть до секунд (вторая ячейка для второй(следующей) новости)
3. Время выставления одновременно BUYSTOP и SELLSTOP вплоть до секунд (третья ячейка для третьей(следующей) новости)
4. Расстояние от цены: 10 пунктов (по умолчанию).
5. TP (100 по умолчанию)
6. SL (10 по умолчанию) 
7. Тралл (20 пунктов по умолчанию, включается сразу же, шаг минимально возможный). 
8. Магик (чтобы можно было ставить на разные пары в одно и то же время, например на все долларовые при нонфарме)

Необходимое и важное условие:

При открытии одного из ордеров - противоположный удаляется ТОЛЬКО в том случае, когда открытый(первый) закрылся в плюсе. Т.е., например, если открылся бай и тут же цена пошла в противоположную сторону на 10 пунктов, то бай у нас соответственно закроется по стоплоссу, а Селл наоборот откроется. В этом случае, далее, у нас останется открытым только один селл до самой его "кончины" в профит или в лосс. Всё, на этом торговля должна закончится.

Заранее благодарю, ребят.
 

Есть такой советник

extern string  MenuRisk    = "=========== Risk ===========";
extern bool    RiskMM = false;        //Увеличение лота (если false, то отключено)
extern int     Risk   = 10;           //Процент риска от баланса
extern double  MaxLot = 0.5;          //Максимальный лот, если при расчёте значение будет превышать, то лот ордеров будет установленный
extern int     MinBalance = 100;      //Минимальный баланс, для возможности при расчёте открывать минимальный лот и избежать ошибки объёма лота
extern double  MinLot = 0.01;         //Минимальный объём лота при расчете от минимального баланса (для центового счёта MinLot = 0.1)
extern string  MenuTimeTrade  = "========= TimeTrade =========";
extern int     TimeStart1 = 12;       //Первое время выставления одновременно ордеров BUYSTOP и SELLSTOP
extern int     TimeStart2 = 15;       //Второе время выставления одновременно ордеров BUYSTOP и SELLSTOP
extern int     TimeStart3 = 18;       //Третье время выставления одновременно ордеров BUYSTOP и SELLSTOP
extern string  MenuParameters = "========= Parameters =========";
extern double  Lot = 0.1;
extern int     MaxSpread = 23;        //максимальный спрейд (если больше, то ордера не откроются)
extern int     DistNewOrdPp = 10;     //дистанция от цены для отложенных ордеров
extern int     NoLossPp = 3;          //без убыток, расстояние от ордера
extern int     NoLossStartPp = 0;     //старт для установки стоплосса в без убыток (если 0, то отключен NoLoss)
extern int     Trailing = 20;         //если 0, то отключен  
extern int     StopLoss = 10;         //если 0, то отключен
extern int     TakeProfit = 100;      //если 0, то отключен
extern string  MenuInfo   = "========= INFO ========="; //инфо в верхнем правом углу графика
extern color   InfoColor = Gold;
extern bool    Info = true;
extern int     SizeINFO = 10;
extern bool    InfoProfit = true;
extern int     SizeProfit = 9;
extern color   InfoLots = White;
extern int     DaysDelObject = 2;     //удаление всех графических объектов (линий, стрелок) с графика через N-дней
extern int     Magic    = 777;
 
Natalya Dzerzhinskaya:

Есть такой советник

extern string  MenuRisk    = "=========== Risk ===========";
extern bool    RiskMM = false;
extern int     Risk   = 10;
extern double  MaxLot = 0.5;
extern int     MinBalance = 100;
extern double  MinLot = 0.01;
extern string  MenuTimeTrade  = "========= TimeTrade =========";
extern int     TimeStart1 = 12;       //Первое время выставления одновременно ордеров BUYSTOP и SELLSTOP
extern int     TimeStart2 = 15;       //Второе время выставления одновременно ордеров BUYSTOP и SELLSTOP
extern int     TimeStart3 = 18;       //Третье время выставления одновременно ордеров BUYSTOP и SELLSTOP
extern string  MenuParameters = "========= Parameters =========";
extern double  Lot = 0.1;
extern int     MaxSpread = 23;        //максимальный спрейд (если больше, то ордера не откроются)
extern int     DistNewOrdPp = 10;     //дистанция от цены для отложенных ордеров
extern int     NoLossPp = 3;          //без убыток, расстояние от ордера
extern int     NoLossStartPp = 0;     //старт для установки стоплосса в без убыток (если 0, то отключен NoLoss)
extern int     Trailing = 20;         //если 0, то отключен  
extern int     StopLoss = 10;         //если 0, то отключен
extern int     TakeProfit = 100;      //если 0, то отключен
extern string  MenuInfo   = "========= INFO ========="; //инфо в верхнем правом углу графика
extern color   InfoColor = Gold;
extern bool    Info = true;
extern int     SizeINFO = 10;
extern bool    InfoProfit = true;
extern int     SizeProfit = 9;
extern color   InfoLots = White;
extern int     DaysDelObject = 2;     //удаление всех графических объектов (линий, стрелок) с графика через N-дней
extern int     Magic    = 777;


 


 

Боже, я и не ожидал ответа, ни на одной форум-площадке не хотят делать такой сов.
Заочно спрошу: как Вас отблагодарить?

Всё же, к сожалению, новости выходят и в полпятого и в сорок пять минут какого-нибудь. И мне нужно установить за пять минут до новости или за полминуты. Т.е., необходимо в параметрах времени ставить не только часы, но и минуты, и секунды по следующему типу (в подобном Вашему сове скомуниздил строчку) – "extern string  Time_Start           "09:00:00" 
Кроме того, необходимо, чтобы при открытии одного из ордеров - противоположный удаляется только в том случае, когда открытый(первый) закрылся в плюсе – вшита в него такая возможность? 
 
Ivan Butko:
Боже, я и не ожидал ответа, ни на одной форум-площадке не хотят делать такой сов.
Заочно спрошу: как Вас отблагодарить?

Всё же, к сожалению, новости выходят и в полпятого и в сорок пять минут какого-нибудь. И мне нужно установить за пять минут до новости или за полминуты. Т.е., необходимо в параметрах времени ставить не только часы, но и минуты, и секунды по следующему типу (в подобном Вашему сове скомуниздил строчку) – "extern string  Time_Start           "09:00:00" 
Кроме того, необходимо, чтобы при открытии одного из ордеров - противоположный удаляется только в том случае, когда открытый(первый) закрылся в плюсе – вшита в него такая возможность? 

Спасибо это много, а вот wmz в самый раз))
ОК, по времени можно и доработать. 
Условие закрытия противоположного ордера выполняется по вашему условию! 

 
Natalya Dzerzhinskaya:

Спасибо это много, а вот wmz в самый раз))
ОК, по времени можно и доработать. 
Условие закрытия противоположного ордера выполняется по вашему условию! 

В ЛС ответил.
 
Ivan Butko:
Всё же, к сожалению, новости выходят и в полпятого и в сорок пять минут какого-нибудь. И мне нужно установить за пять минут до новости или за полминуты. Т.е., необходимо в параметрах времени ставить не только часы, но и минуты, и секунды по следующему типу (в подобном Вашему сове скомуниздил строчку) – "extern string  Time_Start           "09:00:00"  

Исправлено время торговли ЧЧ : ММ
Думаю секунды будут лишние, т.к. любое зависание сервера на одну секунду и ордера не откроются  

[ЗАКРЫТЫЙ КОД УДАЛЁН.]