Quantum London Trading EA
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «quantum_london_trading_ea_v1.5.8.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
«Quantum London Trading EA» — торговый советник для MetaTrader 4, использующий пользовательский индикатор Quantum для генерации сигналов на вход и выход из сделок. Советник работает на заданном таймфрейме (в минутах) и открывает позиции BUY/SELL через стандартную торговую функцию OrderSend.
Продукт поддерживает три временных торговых окна с отдельными ограничениями на количество сделок, фильтрацией по дням недели и интервалом между свечами. Доступна торговля в режиме 24/5 или в заданных временных слотах. При активации режима сетки (Grid) советник управляет лотами в трёх зонах ценового диапазона с настраиваемыми размерами, шагами и лимитами сделок.
Советник включает несколько методов управления рисками: стоп-лосс и тейк-профит в пунктах, долларах или процентах от капитала, индивидуальные TP/SL для каждой сделки, а также функцию восстановления безубыточности при достижении заданной просадки. Поддерживаются два режима закрытия ордеров — стандартный и FIFO.
Настройки программы
| Настройка | Описание |
|---|---|
| Magic Number (mn) | Магический номер — Магический номер для идентификации ордеров, открытых советником |
| Order Comment (comm) | Комментарий к ордерам — Комментарий, присваиваемый каждому открытому ордеру |
| Trade 24/5 (fulltime) | Торговля 24/5 — Разрешает торговлю круглосуточно пять дней в неделю, игнорируя временные окна |
| If Trade 24/5 = false then: (a) | Условие для торговых окон — Разделитель настроек; используется при отключённой торговле 24/5 |
| Trading Window Start Time 1 (Broker) (open1) | Время начала окна 1 — Время начала торгового окна 1 (брокерское время) |
| Trading Window End Time 1 (Broker) (close1) | Время окончания окна 1 — Время окончания торгового окна 1 (брокерское время) |
| Max Trades per Trading Slot 1 (max1) | Максимум сделок в окне 1 — Максимальное количество сделок в торговом окне 1 |
| Trading Window Start Time 2 (Broker) (open2) | Время начала окна 2 — Время начала торгового окна 2 (брокерское время) |
| Trading Window End Time 2 (Broker) (close2) | Время окончания окна 2 — Время окончания торгового окна 2 (брокерское время) |
| Max Trades per Trading Slot 2 (max2) | Максимум сделок в окне 2 — Максимальное количество сделок в торговом окне 2 |
| Trading Window Start Time 3 (Broker) (open3) | Время начала окна 3 — Время начала торгового окна 3 (брокерское время) |
| Trading Window End Time 3 (Broker) (close3) | Время окончания окна 3 — Время окончания торгового окна 3 (брокерское время) |
| Max Trades per Trading Slot 3 (max3) | Максимум сделок в окне 3 — Максимальное количество сделок в торговом окне 3 |
| Close all trades at End Time (closeend) | Закрытие сделок в конце времени — Закрывает все сделки при наступлении времени окончания торговых окон |
| Wait X boxes before opening trades (wait) | Ожидание перед открытием — Количество ожидания (в интервалах) перед открытием сделки после сигнала |
| Only open higher (sells) or lower (buys) than previous order (onlylowerhigher) | Открытие только выше/ниже предыдущего ордера — Разрешает открытие только выше предыдущего ордера (продажи) или ниже (покупки) |
| Number of Daily Cycles to run (numcycles) | Количество ежедневных циклов — Количество ежедневных торговых циклов для выполнения (0 — без ограничений) |
| Stop after each cycle (stop) | Остановка после цикла — Останавливает торговлю после завершения каждого цикла; добавляет кнопку управления на график |
| Time Frame (minutes) (tf) | Таймфрейм (минуты) — Таймфрейм для анализа в минутах |
| Use FIFO Rule (fifo) | Правило FIFO — Использование правила FIFO при закрытии ордеров |
| Trade on Monday (mon) | Торговля в понедельник — Разрешает торговлю в понедельник |
| Trade on Tuesday (tue) | Торговля во вторник — Разрешает торговлю во вторник |
| Trade on Wednesday (wed) | Торговля в среду — Разрешает торговлю в среду |
| Trade on Thursday (thurs) | Торговля в четверг — Разрешает торговлю в четверг |
| Trade on Friday (fri) | Торговля в пятницу — Разрешает торговлю в пятницу |
| Only trade every X candles (xcandles) | Интервал в свечах — Торговля только каждые X свечей (0 — без ограничений) |
| Quantum eintDepth3 for Entry (qde) | Глубина Quantum для входа — Глубина индикатора Quantum для сигналов входа в сделки |
| Quantum eintDepth3 for Close (qdc) | Глубина Quantum для закрытия — Глубина индикатора Quantum для сигналов закрытия сделок |
| Reverse Trading (Buy on Red, Sell on Blue) (reverse) | Обратная торговля — Обратная логика: покупка на красных свечах, продажа на синих |
| Set up lots and/or grid for trades (l) | Настройка лотов и сетки — Разделитель настроек; используется для настройки лотов и/или сетки |
| Trades 1-12 (T1) | Лоты сделок 1-12 — Лот для диапазона сделок 1–12 |
| Trades 13-21 (T2) | Лоты сделок 13-21 — Лот для диапазона сделок 13–21 |
| Trades 22-29 (T3) | Лоты сделок 22-29 — Лот для диапазона сделок 22–29 |
| Trades 30-36 (T4) | Лоты сделок 30-36 — Лот для диапазона сделок 30–36 |
| Trades 37-39 (T5) | Лоты сделок 37-39 — Лот для диапазона сделок 37–39 |
| Trade 40 & > (T6) | Лоты сделок 40 и больше — Лот для 40-й и последующих сделок |
| Use Grid (grid) | Использовать сетку — Включает режим сеточной торговли с управлением лотами по зонам |
| Draw Grid Lines (drawgrid) | Отрисовка линий сетки — Отрисовка горизонтальных линий сетки на графике |
| Grid 1 Size (Eg. 100) (grid1size) | Размер сетки 1 — Размер зоны сетки 1 (в пунктах) |
| Grid 1 Increment (Space between entries) (grid1inc) | Шаг сетки 1 — Шаг между записями сетки 1 (в пунктах) |
| Max Trades For Grid 1 (grid1maxtrades) | Максимум сделок сетки 1 — Максимальное количество сделок для сетки 1 |
| Grid 1 Lots (grid1lots) | Лоты сетки 1 — Размер лота для сетки 1 |
| Grid 2 Size (Eg. 100) (grid2size) | Размер сетки 2 — Размер зоны сетки 2 (в пунктах) |
| Grid 2 Increment (Space between entries) (grid2inc) | Шаг сетки 2 — Шаг между записями сетки 2 (в пунктах) |
| Max Trades For Grid 2 (grid2maxtrades) | Максимум сделок сетки 2 — Максимальное количество сделок для сетки 2 |
| Grid 2 Lots (grid2lots) | Лоты сетки 2 — Размер лота для сетки 2 |
| Grid 3 Size (Eg. 100) (grid3size) | Размер сетки 3 — Размер зоны сетки 3 (в пунктах) |
| Grid 3 Increment (Space between entries) (grid3inc) | Шаг сетки 3 — Шаг между записями сетки 3 (в пунктах) |
| Max Trades For Grid 3 (grid3maxtrades) | Максимум сделок сетки 3 — Максимальное количество сделок для сетки 3 |
| Grid 3 Lots (grid3lots) | Лоты сетки 3 — Размер лота для сетки 3 |
| Use Break Even Recovery (ber) | Восстановление безубыточности — Включает восстановление безубыточности при достижении заданной просадки капитала |
| % Equity Draw Down to Activate Break Even Recovery (percbedd) | Процент просадки для восстановления — Процент просадки капитала для активации восстановления безубыточности |
| Points Take Profit (Eg. 100) (pointstp) | Тейк-профит в пунктах — Тейк-профит в пунктах |
| $ Take Profit (Eg. 100) (dollartp) | Тейк-профит в долларах — Тейк-профит в долларах прибыли на позицию |
| % Equity Take Profit (Eg. 10) (percequitytp) | Тейк-профит в процентах от капитала — Процент тейк-профита от капитала (процент от баланса) |
| Points Stop Loss (Eg. -100) (pointssl) | Стоп-лосс в пунктах — Стоп-лосс в пунктах |
| $ Stop Loss (Eg. -50) (dollarsl) | Стоп-лосс в долларах — Стоп-лосс в долларах убытка на позицию |
| % Equity Stop Loss (Eg. -10) (percequitysl) | Стоп-лосс в процентах от капитала — Процент стоп-лосса от капитала (процент от баланса) |
| Individual Trade TP (indivtp) | Индивидуальный тейк-профит — Индивидуальный тейк-профит для каждой сделки (в пунктах) |
| Individual Trade SL (indivsl) | Индивидуальный стоп-лосс — Индивидуальный стоп-лосс для каждой сделки (в пунктах) |
| Debug Mode (debug) | Режим отладки — Включает вывод информационных сообщений для отладки работы советника |
Поиск по коду файла
#import "user32.dll"
int MessageBoxA(int Ignore,string Caption,string Title,int Icon);
#import
#property strict
input int mn=2015; //Magic Number
input string comm="Quantum London Trading EA";//Order Comment
input bool fulltime=true; //Trade 24/5
input string a="-----------"; //If Trade 24/5 = false then:
input string open1="07:00"; // Trading Window Start Time 1 (Broker)
input string close1="13:00"; // Trading Window End Time 1 (Broker)
input int max1=0;//Max Trades per Trading Slot 1
input string open2="07:00"; // Trading Window Start Time 2 (Broker)
input string close2="13:00"; // Trading Window End Time 2 (Broker)
input int max2=0;//Max Trades per Trading Slot 2
input string open3="07:00"; // Trading Window Start Time 3 (Broker)
input string close3="13:00"; // Trading Window End Time 3 (Broker)
input int max3=0;//Max Trades per Trading Slot 3
input bool closeend=false;//Close all trades at End Time
input int wait=0;//Wait X boxes before opening trades
input bool onlylowerhigher=false;//Only open higher (sells) or lower (buys) than previous order
input int numcycles=0;//Number of Daily Cycles to run
input bool stop=false;//Stop after each cycle
input int tf=1;//Time Frame (minutes)
input bool fifo=false;//Use FIFO Rule
input bool mon=true;//Trade on Monday
input bool tue=true;//Trade on Tuesday
input bool wed=true;//Trade on Wednesday
input bool thurs=true;//Trade on Thursday
input bool fri=true;//Trade on Friday
input int xcandles=0;//Only trade every X candles
input int qde=325;//Quantum eintDepth3 for Entry
input int qdc=325;//Quantum eintDepth3 for Close
input bool reverse=false;//Reverse Trading (Buy on Red, Sell on Blue)
input string l="-----------"; // Set up lots and/or grid for trades
input double T1=0.01; //Trades 1-12
input double T2=0.02; //Trades 13-21
input double T3=0.05; //Trades 22-29
input double T4=0.13; //Trades 30-36
input double T5=0.34; //Trades 37-39
input double T6=0.89; //Trade 40 & >
input bool grid=false;//Use Grid
input bool drawgrid=false;//Draw Grid Lines
input int grid1size=0; //Grid 1 Size (Eg. 100)
input int grid1inc=0; //Grid 1 Increment (Space between entries)
input int grid1maxtrades=0; //Max Trades For Grid 1
input double grid1lots=0; //Grid 1 Lots
input int grid2size=0; //Grid 2 Size (Eg. 100)
input int grid2inc=0; //Grid 2 Increment (Space between entries)
input int grid2maxtrades=0; //Max Trades For Grid 2
input double grid2lots=0; //Grid 2 Lots
input int grid3size=0; //Grid 3 Size (Eg. 100)
input int grid3inc=0; //Grid 3 Increment (Space between entries)
input int grid3maxtrades=0; //Max Trades For Grid 3
input double grid3lots=0; //Grid 3 Lots
input bool ber=false;//Use Break Even Recovery
input double percbedd=0;//% Equity Draw Down to Activate Break Even Recovery
bool beractive=false;
input int pointstp=0;//Points Take Profit (Eg. 100)
input double dollartp=0;//$ Take Profit (Eg. 100)
input double percequitytp=0;//% Equity Take Profit (Eg. 10)
input int pointssl=0;//Points Stop Loss (Eg. -100)
input double dollarsl=0;//$ Stop Loss (Eg. -50)
input double percequitysl=0;//% Equity Stop Loss (Eg. -10)
input double indivtp=0;//Individual Trade TP
input double indivsl=0;//Individual Trade SL
input bool debug=false;//Debug Mode
double lots,prevorderprice;
datetime curtime,prevtime,curday,prevday;
bool donefortheday,buys,buyclosed,sellclosed;
double initialstartbuy,initialstartsell;
double digits;
int openorders,mt1,mt2,mt3,thewait,cycles;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
DeleteLines();
ObjectDelete(0,"start");
return(0);
}
int start()
{
// код доступен только после оплаты
}
digits=1;
if(debug)
{
if(IsTradeAllowed()==false)
Alert("Broker does not allow EA to trade");
}
curday=iTime(Symbol(),PERIOD_D1,0);
if(curday>prevday)// &&
{
cycles=0;
prevday=iTime(Symbol(),PERIOD_D1,0);
}
CheckCloseTrades();
if(grid==true &&
(grid1size==0 || grid2size==0 || grid3size==0))
{
Alert("Please set ALL grid sizes");
return(0);
}
openorders=0;
for(int j=OrdersTotal()-1;j>=0;j--)
{
if(!OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==mn)
{
openorders+=1;
}
}
double g1s=grid1size*Point*digits;
double g2s=grid2size*Point*digits;
double g3s=grid3size*Point*digits;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==mn)
{
prevorderprice=OrderOpenPrice();
break;
}
}
bool buttonstarted=ObjectGetInteger(0,"start",OBJPROP_STATE);
if(iCustom(Symbol(),tf,"Quantum",qde,0,1)>0 && buys==false)
{
buys=true;
thewait=0;
}
if(iCustom(Symbol(),tf,"Quantum",qde,1,1)>0 && buys==true)
{
buys=false;
thewait=0;
}
curtime=iTime(Symbol(),tf,0);
if((stop==true && buttonstarted==true && openorders<=0) || stop==false || openorders>0)
{
if((cycles<numcycles && numcycles>0) || numcycles<=0)
{
if(((iTime(Symbol(),1,0)>=StrToTime(open1) && iTime(Symbol(),1,0)<StrToTime(close1)) || (iTime(Symbol(),1,0)>=StrToTime(open2) && iTime(Symbol(),1,0)<StrToTime(close2)) || (iTime(Symbol(),1,0)>=StrToTime(open3) && iTime(Symbol(),1,0)<StrToTime(close3)) || (fulltime==true)) && curtime>prevtime)
{
bool cantrade=true;
int grid1trades,grid2trades,grid3trades;
if(((iCustom(Symbol(),tf,"Quantum",qde,0,1)>0 && reverse==false) || (iCustom(Symbol(),tf,"Quantum",qde,1,1)>0 && reverse)) && buyclosed==false)
{
sellclosed=false;
if(wait>0 && thewait<wait)
{
thewait+=1;
}
else
{
if(debug)
Alert("Quantum Buy Signal detected --- checking other conditions...");
if(grid==true && OrdersTotal()>0)
{
for(int j=OrdersTotal()-1;j>=0;j--)
{
if(!OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==mn)
{
if(OrderOpenPrice()>initialstartbuy-g1s)
{
grid1trades+=1;
}
if(OrderOpenPrice()<=initialstartbuy-g1s && OrderOpenPrice()>initialstartbuy-g1s-g2s)
{
grid2trades+=1;
}
if(OrderOpenPrice()<=initialstartbuy-g1s-g2s && OrderOpenPrice()>initialstartbuy-g1s-g2s-g3s)
{
grid3trades+=1;
}
}
}
}
if((grid==true) && Ask>initialstartbuy-g1s && ((grid1trades>=grid1maxtrades && grid1maxtrades>0) || (prevorderprice>0 && prevorderprice-(grid1inc*Point*digits)<=Ask)))
cantrade=false;
if((grid==true) && Ask<=initialstartbuy-g1s && Ask>initialstartbuy-g1s-g2s && ((grid2trades>=grid2maxtrades && grid2maxtrades>0) || (prevorderprice-(grid2inc*Point*digits)<=Ask)))
cantrade=false;
if((grid==true) && Ask<=initialstartbuy-g1s-g2s && Ask>initialstartbuy-g1s-g2s-g3s && ((grid3trades>=grid3maxtrades && grid3maxtrades>0) || (prevorderprice-(grid2inc*Point*digits)<=Ask)))
cantrade=false;
if(debug && cantrade==false)
Alert("Trade Cancelled because of Grid Conditions");
if(mon==false && DayOfWeek()==1)
cantrade=false;
if(tue==false && DayOfWeek()==2)
cantrade=false;
if(wed==false && DayOfWeek()==3)
cantrade=false;
if(thurs==false && DayOfWeek()==4)
cantrade=false;
if(fri==false && DayOfWeek()==5)
cantrade=false;
if(debug && cantrade==false)
Alert("Trade Cancelled because of week Conditions");
if(xcandles>0)
{
int lastorderbar;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==mn)
{
lastorderbar=iBarShift(Symbol(),tf,OrderOpenTime(),false);
break;
}
}
if(lastorderbar<xcandles && lastorderbar>0)
{
cantrade=false;
if(debug)
Alert("Trade Cancelled because of X Candles Conditions");
}
}
mt1 = 0;
mt2 = 0;
mt3 = 0;
for(int t=OrdersHistoryTotal()-1;t>=0;t--)
{
if(!OrderSelect(t,SELECT_BY_POS,MODE_HISTORY))
continue;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==mn && OrderOpenTime()>=iTime(Symbol(),PERIOD_D1,0))
{
if(OrderOpenTime()>=StrToTime(open1) && OrderOpenTime()<StrToTime(close1))
mt1+=1;
if(OrderOpenTime()>=StrToTime(open2) && OrderOpenTime()<StrToTime(close2))
mt2+=1;
if(OrderOpenTime()>=StrToTime(open3) && OrderOpenTime()<StrToTime(close3))
mt3+=1;
}
}
for(int r=OrdersTotal()-1;r>=0;r--)
{
if(!OrderSelect(r,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==mn && OrderOpenTime()>=iTime(Symbol(),PERIOD_D1,0))
{
if(OrderOpenTime()>=StrToTime(open1) && OrderOpenTime()<StrToTime(close1))
mt1+=1;
if(OrderOpenTime()>=StrToTime(open2) && OrderOpenTime()<StrToTime(close2))
mt2+=1;
if(OrderOpenTime()>=StrToTime(open3) && OrderOpenTime()<StrToTime(close3))
mt3+=1;
}
}
if((iTime(Symbol(),1,0)>=StrToTime(open1) && iTime(Symbol(),1,0)<StrToTime(close1)) && mt1>=max1 && max1>0)
cantrade=false;
if((iTime(Symbol(),1,0)>=StrToTime(open2) && iTime(Symbol(),1,0)<StrToTime(close2)) && mt2>=max2 && max2>0)
cantrade=false;
if((iTime(Symbol(),1,0)>=StrToTime(open3) && iTime(Symbol(),1,0)<StrToTime(close3)) && mt3>=max3 && max3>0)
cantrade=false;
if(debug && cantrade==false)
Alert("Trade Cancelled due to time window factors");
if(Ask>prevorderprice && onlylowerhigher)
cantrade=false;
if(cantrade==true)
{
lots=GetLots(Ask,"Buy");
if(stop==true)
{
ObjectSetInteger(0,"start",OBJPROP_STATE,false);
}
if(lots>0)
{
int ticket;
RefreshRates();
if(indivsl>0 || indivtp>0)
{
double newsl=0;
double newtp=0;
if(indivsl>0)
newsl=NormalizeDouble(Ask-(indivsl*Point),Digits);
if(indivtp>0)
newtp=NormalizeDouble(Ask+(indivtp*Point),Digits);
ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,5,newsl,newtp,comm,mn,0,0);
}
else
{
ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,5,0,0,comm,mn,0,0);
}
if(ticket<=-1)
{
RefreshRates();
if(indivsl>0 || indivtp>0)
{
double newsl=0;
double newtp=0;
if(indivsl>0)
newsl=NormalizeDouble(Ask-(indivsl*Point),Digits);
if(indivtp>0)
newtp=NormalizeDouble(Ask+(indivtp*Point),Digits);
ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,5,newsl,newtp,comm,mn,0,0);
}
else
{
ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,5,0,0,comm,mn,0,0);
}
}
if(ticket<=-1)
Alert("OrderSend Error: ",GetLastError());
if(debug)
Alert("Trade should definitely have happened!");
}
int bopenorders;
for(int s=OrdersTotal()-1;s>=0;s--)
{
if(!OrderSelect(s,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==mn)
{
bopenorders+=1;
}
}
if(bopenorders<=1 && bopenorders>0)
{
initialstartbuy=Ask;
initialstartsell=0;
if(drawgrid==true)
{
Alert("Grid should have been drawn");
DrawGrid(initialstartbuy,"Buy");
}
}
}
}
}
if(((iCustom(Symbol(),tf,"Quantum",qde,1,1)>0 && reverse==false) || (iCustom(Symbol(),tf,"Quantum",qde,0,1)>0 && reverse)) && sellclosed==false)
{
buyclosed=false;
if(wait>0 && thewait<wait)
{
thewait+=1;
}
else
{
if(debug)
Alert("Quantum Sell Signal detected --- checking other conditions...");
cantrade=true;
if(grid==true && OrdersTotal()>0)
{
for(int j=OrdersTotal()-1;j>=0;j--)
{
if(!OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==mn)
{
if(OrderOpenPrice()<initialstartsell+g1s)
{
grid1trades+=1;
}
if(OrderOpenPrice()>=initialstartsell+g1s && OrderOpenPrice()<initialstartsell+g1s+g2s)
{
grid2trades+=1;
}
if(OrderOpenPrice()>=initialstartsell+g1s+g2s && OrderOpenPrice()<initialstartsell+g1s+g2s+g3s)
{
grid3trades+=1;
}
}
}
}
if((grid==true) && Bid<initialstartsell+g1s && ((grid1trades>=grid1maxtrades && grid1maxtrades>0) || (prevorderprice>0 && prevorderprice+(grid1inc*Point*digits)>=Bid)))
cantrade=false;
if((grid==true) && Bid>=initialstartsell-g1s && Bid<initialstartsell+g1s+g2s && ((grid2trades>=grid2maxtrades && grid2maxtrades>0) || (prevorderprice+(grid2inc*Point*digits)>=Bid)))
cantrade=false;
if((grid==true) && Bid>=initialstartsell-g1s-g2s && Bid<initialstartsell+g1s+g2s+g3s && ((grid3trades>=grid3maxtrades && grid3maxtrades>0) || (prevorderprice+(grid3inc*Point*digits)>=Bid)))
cantrade=false;
if(debug && cantrade==false)
Alert("Trade Cancelled because of Grid Conditions");
if(mon==false && DayOfWeek()==1)
cantrade=false;
if(tue==false && DayOfWeek()==2)
cantrade=false;
if(wed==false && DayOfWeek()==3)
cantrade=false;
if(thurs==false && DayOfWeek()==4)
cantrade=false;
Показано первые 50% кода (символов: 21669)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.