cm_script_opengread_30.12.13.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «cm_script_opengread_30.12.13.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 4, предназначенный для автоматического открытия рыночных и отложенных ордеров после наступления заданного времени. Советник позволяет настраивать типы ордеров, объёмы сделок, шаги размещения и уровни стоп-лосса с тейк-профитом.
Советник поддерживает шесть типов ордеров: Buy, Sell, BuyStop, SellStop, BuyLimit и SellLimit. Каждый тип может быть включён или отключён отдельно. Отложенные ордера размещаются серией с заданным количеством позиций, при этом объёмы и цены рассчитываются по настраиваемым параметрам.
Встроена система повторных попыток размещения ордеров при ошибках, а также идентификация ордеров с помощью магического числа. Советник отслеживает минимальное расстояние до стоп-лосса и тейк-профита с учётом ограничений платформы.
Настройки программы
| Настройка | Описание |
|---|---|
| ????? ??????????? ???????, ???? ??????? ????? ?????? ??????????????, ?? ???????????? ????? (TimeSet) | Дата и время, после которых советник начинает размещение ордеров. До указанного времени советник ожидает. |
| ??????? Buy ????? (Buy) | Включает или отключает открытие рыночного ордера Buy (покупка). |
| ??????? Sell ????? (Sell) | Включает или отключает открытие рыночного ордера Sell (продажа). |
| ??????? BuyStop ?????? (BuyStop) | Включает или отключает размещение отложенного ордера BuyStop (покупка по цене выше текущей). |
| ??????? BuyLimit ?????? (BuyLimit) | Включает или отключает размещение отложенного ордера BuyLimit (покупка по цене ниже текущей). |
| ??????? SellStop ?????? (SellStop) | Включает или отключает размещение отложенного ордера SellStop (продажа по цене ниже текущей). |
| ??????? SellLimit ?????? (SellLimit) | Включает или отключает размещение отложенного ордера SellLimit (продажа по цене выше текущей). |
| __ | Текстовый разделитель (визуальный разделитель параметров в списке настроек). |
| ???? ??????????? ??????? BuyStop ??????, ???? 0 ?? ?????? BuyStop ????? ????????? ?? ???? Ask+FirstS (FirstBuyStop) | Начальная цена для первого отложенного ордера BuyStop. Если 0, цена рассчитывается от текущей цены Ask с учётом начального расстояния. |
| ???? ??????????? ??????? SellStop ??????, ???? 0 ?? ?????? SellStop ????? ????????? ?? ???? Bid-Firs (FirstSellStop) | Начальная цена для первого отложенного ордера SellStop. Если 0, цена рассчитывается от текущей цены Bid с учётом начального расстояния. |
| ???? ??????????? ??????? BuyLimit ??????, ???? 0 ?? ?????? BuyLimit ????? ????????? ?? ???? Bid-Firs (FirstBuyLimit) | Начальная цена для первого отложенного ордера BuyLimit. Если 0, цена рассчитывается от текущей цены Bid с учётом начального расстояния. |
| ???? ??????????? ??????? SellLimit ??????, ???? 0 ?? ?????? SellLimit ????? ????????? ?? ???? Ask+Fi (FirstSellLimit) | Начальная цена для первого отложенного ордера SellLimit. Если 0, цена рассчитывается от текущей цены Bid с учётом начального расстояния. |
| ?????????? (? ???????) ?? ??????? ???? ?? ??????? Stop ?????? ? ?????? First..Stop=0 (FirstStop) | Начальное расстояние в пунктах для расчёта цены первого отложенного ордера Stop при значении параметра FirstBuyStop или FirstSellStop, равном нулю. |
| ?????????? (? ???????) ?? ??????? ???? ?? ??????? Limit ?????? ? ?????? First..Limit=0 (FirstLimit) | Начальное расстояние в пунктах для расчёта цены первого отложенного ордера Limit при значении параметра FirstBuyLimit или FirstSellLimit, равном нулю. |
| ?????????? (? ???????) ????? Stop ???????? (StepStop) | Шаг изменения цены для отложенных ордеров Stop в пунктах на каждой итерации серии. |
| ??????????? ?????????? ????? (K_StepStop) | Множитель для расчёта шага изменения цены отложенных ордеров Stop на каждой итерации серии. |
| ?????????? (? ???????) ????? Limit ???????? (StepLimit) | Шаг изменения цены для отложенных ордеров Limit в пунктах на каждой итерации серии. |
| ??????????? ?????????? ????? (K_StepLimit) | Множитель для расчёта шага изменения цены отложенных ордеров Limit на каждой итерации серии. |
| _ | Текстовый разделитель (визуальный разделитель параметров в списке настроек). |
| ???-?? ??????? ????? (Orders) | Количество ордеров в серии для каждого типа отложенных ордеров. |
| ????? ???????? ??????? (LotMarket) | Объём лота для рыночных ордеров Buy и Sell. |
| ????? ??????? Stop ?????? (LotStop) | Начальный объём лота для отложенных ордеров Stop. |
| ????????? ???? Stop ??????? (K_LotStop) | Множитель для расчёта объёма лота отложенных ордеров Stop на каждой итерации серии. |
| ?????????? ???? Stop ??????? (Plus_LotStop) | Дополнительное фиксированное значение, прибавляемое к объёму лота отложенных ордеров Stop на каждой итерации. |
| ????? ??????? Limit ?????? (LotLimit) | Начальный объём лота для отложенных ордеров Limit. |
| ????????? ???? Limit ??????? (K_LotLimit) | Множитель для расчёта объёма лота отложенных ордеров Limit на каждой итерации серии. |
| ?????????? ???? Limit ??????? (Plus_LotLimit) | Дополнительное фиксированное значение, прибавляемое к объёму лота отложенных ордеров Limit на каждой итерации. |
| ??????? ??????????? SL, ???? 0, ?? SL ?? ???????????? (stoploss) | Расстояние стоп-лосса в пунктах от цены ордера. Если 0, стоп-лосс не устанавливается. |
| ??????? ??????????? TP, ???? 0, ?? TP ?? ???????????? (takeprofit) | Расстояние тейк-профита в пунктах от цены ордера. Если 0, тейк-профит не устанавливается. |
| ???? ????????? ??????????? ?????? ? ????????, ???? 0, ?? ???? ?? ????????? (86400 - ?????) (Expiration) | Время жизни отложенных ордеров в секундах. Если значение 0, ордера не имеют ограничения по сроку действия. |
| ???-?? ??????? ???????? ?????? (attempts) | Максимальное количество повторных попыток размещения ордера при возникновении ошибки. |
| ?????????? ????? ?????? (Magic) | Магическое число для идентификации ордеров, размещённых советником. |
Поиск по коду файла
#property show_inputs
extern datetime TimeSet = D'2013.10.01 00:00:00'; //????? ??????????? ???????, ???? ??????? ????? ?????? ??????????????, ?? ???????????? ?????
extern bool Buy = true; //??????? Buy ?????
extern bool Sell = true; //??????? Sell ?????
extern bool BuyStop = true; //??????? BuyStop ??????
extern bool BuyLimit = true; //??????? BuyLimit ??????
extern bool SellStop = true; //??????? SellStop ??????
extern bool SellLimit = true; //??????? SellLimit ??????
extern string __ = "";
extern double FirstBuyStop = 0; //???? ??????????? ??????? BuyStop ??????, ???? 0 ?? ?????? BuyStop ????? ????????? ?? ???? Ask+FirstStop
extern double FirstSellStop = 0; //???? ??????????? ??????? SellStop ??????, ???? 0 ?? ?????? SellStop ????? ????????? ?? ???? Bid-FirstStop
extern double FirstBuyLimit = 0; //???? ??????????? ??????? BuyLimit ??????, ???? 0 ?? ?????? BuyLimit ????? ????????? ?? ???? Bid-FirstStop
extern double FirstSellLimit = 0; //???? ??????????? ??????? SellLimit ??????, ???? 0 ?? ?????? SellLimit ????? ????????? ?? ???? Ask+FirstStop
extern int FirstStop = 100; //?????????? (? ???????) ?? ??????? ???? ?? ??????? Stop ?????? ? ?????? First..Stop=0
extern int FirstLimit = 50; //?????????? (? ???????) ?? ??????? ???? ?? ??????? Limit ?????? ? ?????? First..Limit=0
extern int StepStop = 30; //?????????? (? ???????) ????? Stop ????????
extern double K_StepStop = 1; //??????????? ?????????? ?????
extern int StepLimit = 30; //?????????? (? ???????) ????? Limit ????????
extern double K_StepLimit = 1; //??????????? ?????????? ?????
extern string _ = "";
extern int Orders = 5; //???-?? ??????? ?????
extern double LotMarket = 0.5; //????? ???????? ???????
extern double LotStop = 0.5; //????? ??????? Stop ??????
extern double K_LotStop = 1; //????????? ???? Stop ???????
extern double Plus_LotStop = 0; //?????????? ???? Stop ???????
extern double LotLimit = 0.1; //????? ??????? Limit ??????
extern double K_LotLimit = 2; //????????? ???? Limit ???????
extern double Plus_LotLimit = 0; //?????????? ???? Limit ???????
extern int stoploss = 50; //??????? ??????????? SL, ???? 0, ?? SL ?? ????????????
extern int takeprofit = 100; //??????? ??????????? TP, ???? 0, ?? TP ?? ????????????
extern int Expiration = 36000; //???? ????????? ??????????? ?????? ? ????????, ???? 0, ?? ???? ?? ????????? (86400 - ?????)
extern int attempts = 10; //???-?? ??????? ???????? ??????
extern int Magic = 0; //?????????? ????? ??????
extern string Order_Comment = "";
string txt;
int n,slippage=3,STOPLEVEL;
datetime expiration;
int start()
{
// код доступен только после оплаты
}
/*============================================*/if (IsTesting() && OrdersTotal()>0) return(0);/*===============================================*/
if (Expiration>0) expiration=TimeCurrent()+Expiration; else expiration=0;
Comment("?????? ??????? OpenStopOrderNetTime ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));
STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
if (Digits==3 || Digits==5) slippage=30;
while (TimeCurrent()<TimeSet)
{
Sleep(1000);
Comment("?????? ??????????? ????? ?????????? ??????? Copyright ? 2013 c******n*@narod.ru\n",
TimeToStr(TimeCurrent(),TIME_SECONDS)," ?? ??????????? ????? ???????? ",TimeToStr(TimeSet-TimeCurrent(),TIME_SECONDS));
RefreshRates();
}
double PriceBS,PriceBL,PriceSS,PriceSL;
double LOTs=LotStop;
double LOTl=LotLimit;
if (FirstBuyStop==0) PriceBS = NormalizeDouble(Ask+FirstStop*Point,Digits);
else PriceBS = NormalizeDouble(FirstBuyStop,Digits);
if ((PriceBS-Ask)/Point<STOPLEVEL) {Alert("?????? ????? BuyStop ?? ????? ???? ?????????? ????? ??? ",STOPLEVEL," ?");return(0);}
if (FirstSellStop==0) PriceSS = NormalizeDouble(Bid-FirstStop*Point,Digits);
else PriceSS = NormalizeDouble(FirstSellStop,Digits);
if ((Bid-PriceSS)/Point<STOPLEVEL) {Alert("?????? ????? SellStop ?? ????? ???? ?????????? ????? ??? ",STOPLEVEL," ?");return(0);}
if (FirstBuyLimit==0) PriceBL = NormalizeDouble(Bid-FirstLimit*Point,Digits);
else PriceBL = NormalizeDouble(FirstBuyLimit,Digits);
if ((Bid-PriceBL)/Point<STOPLEVEL) {Alert("?????? ????? BuyLimit ?? ????? ???? ?????????? ????? ??? ",STOPLEVEL," ?");return(0);}
if (FirstSellLimit==0) PriceSL = NormalizeDouble(Ask+FirstLimit*Point,Digits);
else PriceSL = NormalizeDouble(FirstSellLimit,Digits);
if ((PriceSL-Ask)/Point<STOPLEVEL) {Alert("?????? ????? SellLimit ?? ????? ???? ?????????? ????? ??? ",STOPLEVEL," ?");return(0);}
double Step_Stop=StepStop;
double Step_Limit=StepLimit;
if (Buy) OPENORDER (OP_BUY,Ask,LotMarket,0);
if (Sell) OPENORDER (OP_SELL,Bid,LotMarket,0);
for (int i=1; i<=Orders; i++)
{
if (BuyStop||SellStop)
{
Step_Stop=Step_Stop*K_StepStop;
if (BuyStop)
{
OPENORDER (OP_BUYSTOP,PriceBS,LOTs,i);
PriceBS = NormalizeDouble(PriceBS+Step_Stop*Point,Digits);
}
if (SellStop)
{
OPENORDER (OP_SELLSTOP,PriceSS,LOTs,i);
Показано первые 50% кода (символов: 8579)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.