benefitea.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «benefitea.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для MetaTrader 4, реализующий сеточную торговлю с управлением лотами, тейк-профитами и стоп-лоссами. Открывает ордера Buy и Sell на основе изменения цены относительно предыдущих баров, используя настраиваемые шаги и экспоненциальное увеличение лотов. Поддерживает фильтрацию по времени работы, работу с ECN-брокерами и отображение информационной панели на графике.
Включает систему виртуального тейк-профита (VTP) с функцией трейлинга, систему снижения риска (RRS), отслеживающую достижение целевой прибыли в процентах от баланса, а также сервисные ордера для закрытия сетки. Рассчитывает точки безубыточности для множественных позиций и позволяет задавать цветовую маркировку уровней. Содержит функцию отладки с точкой останова.
Настройки программы
| Настройка | Описание |
|---|---|
| _0_ | Базовые настройки — Группа настроек: базовые параметры |
| New_Cycle | Новый цикл — Разрешение запуска нового торгового цикла при отсутствии текущих позиций |
| Auto_Detect_5_Digit_Brokers | Автоопределение 5-значных брокеров — Автоматическое определение 5-значных брокеров (корректирует расчёты для 3- и 5-значных котировок) |
| MAGIC | Магический номер — Магический номер для идентификации ордеров советника |
| Slippage | Проскальгивание — Допустимое проскальгивание при открытии и закрытии ордеров |
| Max_Trades | Максимальное количество сделок — Максимальное количество одновременных сделок (проверяется при открытии) |
| Max_Lot | Максимальный лот — Максимально допустимый размер лота для всех ордеров |
| _1_ | Настройки времени — Группа настроек: фильтрация по времени |
| Time_Filters | Фильтр времени — Включение/выключение фильтрации по времени торговли |
| Trading_Time_1_Start | Начало периода 1 — Время начала первого разрешённого торгового периода (формат ЧЧ:ММ) |
| Trading_Time_1_End | Конец периода 1 — Время окончания первого разрешённого торгового периода (формат ЧЧ:ММ) |
| Trading_Time_2_Start | Начало периода 2 — Время начала второго разрешённого торгового периода (формат ЧЧ:ММ) |
| Trading_Time_2_End | Конец периода 2 — Время окончания второго разрешённого торгового периода (формат ЧЧ:ММ) |
| _2_ | Настройки тейк-профита — Группа настроек: тейк-профит |
| TP | Тейк-профит — Основной тейк-профит для ордеров (в пунктах с учётом коррекции) |
| TP1 | Дополнительный тейк-профит — Дополнительный тейк-профит для ордеров (в пунктах с учётом коррекции) |
| VTP | Виртуальный тейк-профит — Включение/выключение виртуального тейк-профита с трейлингом |
| Tral_Start | Начало трейлинга VTP — Начальная дистанция трейлинга для виртуального тейк-профита (в пунктах с учётом коррекции) |
| Tral_Size | Размер трейлинга VTP — Размер трейлинга для виртуального тейк-профита (в пунктах с учётом коррекции) |
| _3_ | Настройки RRS — Группа настроек: система снижения риска |
| RRS | Система снижения риска — Включение/выключение системы снижения риска (Risk Reduction System) |
| RRS_nOrder | Количество ордеров RRS — Количество ордеров, при котором активируется RRS-трейлинг лота |
| RRS_TP | Тейк-профит RRS — Расстояние тейк-профита для RRS-линий (в пунктах с учётом коррекции) |
| RRS_Tral_Start | Начало трейлинга RRS — Начальная дистанция трейлинга для RRS-линий (в пунктах с учётом коррекции) |
| RRS_Tral_Size | Размер трейлинга RRS — Размер трейлинга для RRS-линий (в пунктах с учётом коррекции) |
| RRS_Profit_Percent | Процент прибыли RRS — Процент прибыли от баланса для срабатывания RRS-закрытия позиций |
| _4_ | Настройки Buy — Группа настроек: параметры Buy |
| Step_Buy | Шаг Buy — Базовый шаг цены для открытия следующего Buy-ордера (в пунктах) |
| Step_Coef_Buy | Коэффициент нарастания шага Buy — Коэффициент нарастания шага Buy (используется как степенной коэффициент) |
| Step_Coef_Start_Order_Buy | Начальный ордер коэффициента Buy — Номер ордера, начиная с которого применяется коэффициент нарастания шага Buy |
| Step_Mass_Buy | Масштаб шагов Buy — Перечень шагов Buy через запятую (альтернатива коэффициентному нарастанию) |
| Min_Lot_Buy | Минимальный лот Buy — Минимальный размер лота для Buy-ордеров |
| Lot_Exp_Buy | Экспонента лота Buy — Экспонента для расчёта лота Buy (используется в формуле Min_Lot_Buy * Lot_Exp_Buy^(orderNumber-2)) |
| _5_ | Настройки Sell — Группа настроек: параметры Sell |
| Step_Sell | Шаг Sell — Базовый шаг цены для открытия следующего Sell-ордера (в пунктах) |
| Step_Coef_Sell | Коэффициент нарастания шага Sell — Коэффициент нарастания шага Sell (используется как степенной коэффициент) |
| Step_Coef_Start_Order_Sell | Начальный ордер коэффициента Sell — Номер ордера, начиная с которого применяется коэффициент нарастания шага Sell |
| Step_Mass_Sell | Масштаб шагов Sell — Перечень шагов Sell через запятую (альтернатива коэффициентному нарастанию) |
| Min_Lot_Sell | Минимальный лот Sell — Минимальный размер лота для Sell-ордеров |
| Lot_Exp_Sell | Экспонента лота Sell — Экспонента для расчёта лота Sell (используется в формуле Min_Lot_Sell * Lot_Exp_Sell^(orderNumber-2)) |
| _6_ | Настройки цветов — Группа настроек: цвета |
| Buy_BE_Color | Цвет безубыточности Buy — Цвет горизонтальной линии безубыточности для Buy-позиций |
| Sell_BE_Color | Цвет безубыточности Sell — Цвет горизонтальной линии безубыточности для Sell-позиций |
| Buy_TP_Color | Цвет тейк-профита Buy — Цвер горизонтальной линии тейк-профита для Buy-позиций |
| Sell_TP_Color | Цвет тейк-профита Sell — Цвет горизонтальной линии тейк-профита для Sell-позиций |
| Buy_Trall_Color | Цвет трейлинга Buy — Цвет горизонтальной линии трейлинга для Buy-позиций (VTP) |
| Sell_Trall_Color | Цвет трейлинга Sell — Цвет горизонтальной линии трейлинга для Sell-позиций (VTP) |
| Buy_LOT_Trall_Color | Цвет трейлинга лота Buy — Цвет линии трейлинга лота для Buy-позиций (RRS) |
| Sell_LOT_Trall_Color | Цвет трейлинга лота Sell — Цвет линии трейлинга лота для Sell-позиций (RRS) |
| RRS_Color_Sell | Цвет RRS Sell — Цвет линии безубыточности лота для Sell-позиций в режиме RRS |
| RRS_Color_Buy | Цвет RRS Buy — Цвет линии безубыточности лота для Buy-позиций в режиме RRS |
Поиск по коду файла
#define MB_YESNO 0x00000004
#define IDYES 6
bool ECN=true;//set true if using ECN broker. If true then EA will open orders with SL=0 and TP=0 and will modify these parameters after order(including pending) is executed
extern string _0_="================ Base settings ================";
extern bool New_Cycle=true;
extern bool Auto_Detect_5_Digit_Brokers=false;
extern int MAGIC=222;
extern double Slippage=3;
extern double Max_Trades=17;
extern double Max_Lot=100;
extern string _1_ = "================ Time filter settings ================";
extern bool Time_Filters=false;
extern string Trading_Time_1_Start="00:00";
extern string Trading_Time_1_End="06:00";
extern string Trading_Time_2_Start="13:00";
extern string Trading_Time_2_End="13:00";
extern string _2_ = "================ TP settings ================";
extern double TP=50;
extern double TP1=50;
extern bool VTP=true;
extern double Tral_Start=10;
extern double Tral_Size=5;
extern string _3_ = "================ Risk Reduction System ================";
extern bool RRS = false;
extern int RRS_nOrder = 5;
extern double RRS_TP = 50;
extern double RRS_Tral_Start = 10;
extern double RRS_Tral_Size = 5;
extern double RRS_Profit_Percent = 15;
extern string _4_ = "================ Buy settings ================";
extern double Step_Buy=5;
extern double Step_Coef_Buy=0;
extern int Step_Coef_Start_Order_Buy=4;
extern string Step_Mass_Buy="60,60,60,60,60,60,80,80,90,120,120,120,150,150,150,200";
extern double Min_Lot_Buy=0.01;
extern double Lot_Exp_Buy=1.8;
extern string _5_ = "================ Sell settings ================";
extern double Step_Sell=5;
extern double Step_Coef_Sell=0;
extern int Step_Coef_Start_Order_Sell=4;
extern string Step_Mass_Sell="60,60,60,60,60,60,80,80,90,120,120,120,150,150,150,200";
extern double Min_Lot_Sell=0.01;
extern double Lot_Exp_Sell=1.8;
extern string _6_ = "================ Color settings ================";
extern color Buy_BE_Color=RoyalBlue;
extern color Sell_BE_Color=Tomato;
extern color Buy_TP_Color=DarkBlue;
extern color Sell_TP_Color=Red;
extern color Buy_Trall_Color=Yellow;
extern color Sell_Trall_Color=Magenta;
extern color Buy_LOT_Trall_Color=Yellow;
extern color Sell_LOT_Trall_Color=Magenta;
extern color RRS_Color_Sell = Purple;
extern color RRS_Color_Buy = OrangeRed;
double SL=0;
int x=1;
double Orders[2][100][10];// first dimension: 0 - buys, 1 - sells
int TotalOrders[2];
double lastPriceBuy, lastPriceSell;
double TrallBuys=-1, TrallSells=-1, LotTrallBuys=-1, LotTrallSells=-1;
double BuysBE, SellsBE, BuysTP, SellsTP, LOTBuysBE, LOTSellsBE, LOTBuysTP, LOTSellsTP;
bool ObjectCreateEx(string objname,int YOffset, int XOffset=0,int objType=23,int corner=0, bool background=false)
{
bool needNUL=false;
if(ObjectFind(objname)==-1)
{
needNUL=true;
ObjectCreate(objname,objType,0,0,0,0,0);
}
ObjectSet(objname,103,YOffset);
ObjectSet(objname,102,XOffset);
ObjectSet(objname,101,corner);
ObjectSet(objname, OBJPROP_BACK, background);
if(needNUL) ObjectSetText(objname,"",14,"Tahoma",Gray);
}
int BuyObj[2], SellObj[2];
int init()
{
// код доступен только после оплаты
}
bool MyBreakPointFlag=false;
void MyBreakPoint()
{
if(!IsVisualMode())return;
MyBreakPointFlag=true;
if(ObjectFind("MyBreakPointLabel")<0)
{
ObjectCreate("MyBreakPointLabel",23,0,0,0,0,0);
ObjectSet("MyBreakPointLabel",103,2*(20)+28);
ObjectSet("MyBreakPointLabel",102,10*(20)+28);
ObjectSetText("MyBreakPointLabel","BreakPoint at "+TimeToStr(TimeCurrent())+". Delete this text to continue.",14,"Tahoma",Red);
}
while(ObjectFind("MyBreakPointLabel")!=-1)Sleep(100);
}
int start()
{
// код доступен только после оплаты
}
double sl,tp,op,lot;
int magic, ticket, i, j;
ObjectSetText("_Benefit_error","",14,"Tahoma",Gray);
double Level=MathMax(MarketInfo(Symbol(),MODE_FREEZELEVEL),MarketInfo(Symbol(),MODE_STOPLEVEL))*Point*x;
ArrayInitialize(Orders,-1);
ArrayInitialize(TotalOrders,0);
int NeedCloseAll=-1;
lastPriceBuy=0; lastPriceSell=0;
double highestBuy=-1, lowestBuy=-1, highestSell=-1, lowestSell=-1;
double profitBuys=0, profitSells=0;
int buys=0, sells=0;
double lotsBuys=0, lotsSells=0;
int firstBuyTime=-1, firstSellTime=-1;
for(i=OrdersTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==Symbol())
{
if(OrderMagicNumber()==MAGIC+1)
{
NeedCloseAll=OrderTicket();
continue;
}
if(OrderMagicNumber()!=MAGIC) continue;
int index=0;
if(OrderType()==1)
index=1;
if(NO(lastPriceBuy)==0 && OrderType()==0) lastPriceBuy=OrderOpenPrice();
if(NO(lastPriceSell)==0 && OrderType()==1) lastPriceSell=OrderOpenPrice();
if(OrderType()==0)
{
if(NO(highestBuy)<0 || NO(OrderOpenPrice())>NO(highestBuy)) highestBuy=OrderOpenPrice();
if(NO(lowestBuy)<0 || NO(OrderOpenPrice())<NO(lowestBuy)) lowestBuy=OrderOpenPrice();
profitBuys+=(OrderProfit()+OrderCommission()+OrderSwap());
lotsBuys+=OrderLots();
buys++;
if(firstBuyTime<0 || OrderOpenTime()<firstBuyTime) firstBuyTime=OrderOpenTime();
}
if(OrderType()==1)
{
if(NO(highestSell)<0 || NO(OrderOpenPrice())>NO(highestSell)) highestSell=OrderOpenPrice();
if(NO(lowestSell)<0 || NO(OrderOpenPrice())<NO(lowestSell)) lowestSell=OrderOpenPrice();
profitSells+=(OrderProfit()+OrderCommission()+OrderSwap());
lotsSells+=OrderLots();
sells++;
if(firstSellTime<0 || OrderOpenTime()<firstSellTime) firstSellTime=OrderOpenTime();
}
Orders[index][TotalOrders[index]][0]=OrderTicket();
Orders[index][TotalOrders[index]][1]=OrderType();
Orders[index][TotalOrders[index]][2]=OrderLots();
Orders[index][TotalOrders[index]][3]=OrderOpenPrice();
Orders[index][TotalOrders[index]][4]=OrderStopLoss();
Orders[index][TotalOrders[index]][5]=OrderTakeProfit();
Orders[index][TotalOrders[index]][6]=PointCost(OrderLots());
TotalOrders[index]++;
}
if(TotalOrders[0]<1)
{
LotTrallBuys=-1;
TrallBuys=-1;
}
if(TotalOrders[1]<1)
{
LotTrallSells=-1;
TrallSells=-1;
}
bool NeedReturn=false;
if(NeedCloseAll>=0 && OrderSelect(NeedCloseAll,SELECT_BY_TICKET))
{
index=-1;
if(OrderType()==4 && TotalOrders[0]>0) index=0;
if(OrderType()==5 && TotalOrders[1]>0) index=1;
if(OrderType()==2 && TotalOrders[1]+TotalOrders[0]>0) index=2;
if(index==0 || index==2)
{
for(i=0;i<TotalOrders[0];i++)
{
if(Orders[0][i][0]<0) continue;
if(!OrderSelect(StrToInteger(DoubleToStr(Orders[0][i][0],0)),SELECT_BY_TICKET))continue;
if(OrderSymbol()!=Symbol())continue;
color col2=DarkBlue;
if(OrderType()==1) col2=Red;
if(OrderType()<2)OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3, col2);
if(OrderType()>1)OrderDelete(OrderTicket());
}
NeedReturn=true;
}
if(index==1 || index==2)
{
for(i=0;i<TotalOrders[1];i++)
{
if(Orders[1][i][0]<0) continue;
if(!OrderSelect(StrToInteger(DoubleToStr(Orders[1][i][0],0)),SELECT_BY_TICKET))continue;
if(OrderSymbol()!=Symbol())continue;
if(OrderType()<2)OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3);
if(OrderType()>1)OrderDelete(OrderTicket());
}
NeedReturn=true;
}
if(NeedReturn)
return;
}
if(NeedCloseAll>=0)
{
OrderDelete(NeedCloseAll);
return;
}
int closeBuys=0, closeSells=0;
double historyProfitBuys=0, historyProfitSells=0;
bool countBuys=true, countSells=true;
double dayProfit=0, weekProfit=0;
for(int tr=OrdersHistoryTotal()-1;tr>=0;tr--)
{
if(!OrderSelect(tr,SELECT_BY_POS,MODE_HISTORY))
{Alert("!!!Can\'t select history order!!!");return(-100500);}
if(OrderSymbol()!=Symbol())
continue;
if(OrderMagicNumber()!=MAGIC && OrderMagicNumber()!=MAGIC+1)
continue;
if(OrderMagicNumber()==MAGIC+1)
{
if(OrderType()==4) countBuys=false;
if(OrderType()==5) countSells=false;
}
if(OrderOpenTime()>=iTime(NULL, 1440, 0))
dayProfit+=(OrderProfit()+OrderCommission()+OrderSwap());
if(OrderOpenTime()>=iTime(NULL, 10080, 0))
weekProfit+=(OrderProfit()+OrderCommission()+OrderSwap());
if(!countSells && !countBuys && OrderOpenTime()<iTime(NULL, 10080, 0)) break;
if(OrderType()==0 && countBuys)
{
closeBuys++;
}
if(OrderType()==1 && countSells)
{
closeSells++;
}
if(OrderType()==0 && OrderOpenTime()>firstBuyTime && firstBuyTime>-1)
historyProfitBuys=historyProfitBuys+(OrderProfit()+OrderCommission()+OrderSwap());
if(OrderType()==1 && OrderOpenTime()>firstSellTime && firstSellTime>-1)
historyProfitSells=historyProfitSells+(OrderProfit()+OrderCommission()+OrderSwap());
}
/* if(closeBuys>0 || closeSells>0)
{
if(closeBuys>0) int ortype=4;
if(closeSells>0) ortype=5;
if(closeSells>0 && closeBuys>0) ortype=2;
PutServiceOrder(ortype, MAGIC+1);
return;
}*/
bool Buy=false, Sell=false;
j=TotalOrders[0]-Step_Coef_Start_Order_Buy+2;
if(j<0) j=0;
double buystep=Step_Buy*MathPow(Step_Coef_Buy, j);
if(NO(Step_Coef_Buy)==0) buystep=ParseStepMass(TotalOrders[0], 0);
Buy=(((TotalOrders[0]==0 && NO(Close[2])>NO(Open[2]) && NO(Close[1])>NO(Open[1])) || TotalOrders[0]>0)
&& (!ThereIsOrderOnThisBar(Time[0], 0) && (lastPriceBuy-Ask>=buystep*Point*x || NO(lastPriceBuy)==0)));
j=TotalOrders[1]-Step_Coef_Start_Order_Sell+2;
if(j<0) j=0;
double sellstep=Step_Sell*MathPow(Step_Coef_Sell, j);
if(NO(Step_Coef_Sell)==0) sellstep=ParseStepMass(TotalOrders[1], 1);
Sell=(((TotalOrders[1]==0 && NO(Close[2])<NO(Open[2]) && NO(Close[1])<NO(Open[1])) || TotalOrders[1]>0)
&& (!ThereIsOrderOnThisBar(Time[0], 1) && (Bid-lastPriceSell>=sellstep*Point*x || NO(lastPriceSell)==0)));
if(TotalOrders[0]<1 && (!New_Cycle || !TradeWasInTime(TimeCurrent()))) Buy=false;
if(TotalOrders[1]<1 && (!New_Cycle || !TradeWasInTime(TimeCurrent()))) Sell=false;
if(ObjectGet("_Benefit_OpenBuy", OBJPROP_XDISTANCE)!=BuyObj[0] || ObjectGet("_Benefit_OpenBuy", OBJPROP_YDISTANCE)!=BuyObj[1])
{
if(MessageBox("?? ????????????? ?????? ??????? ????????? ?????? Buy ????? "+DoubleToStr(GetLot(0, TotalOrders[0]+1), 2)+"?", "???????????", MB_YESNO)==IDYES)
Buy=true;
ObjectSet("_Benefit_OpenBuy", OBJPROP_XDISTANCE, BuyObj[0]);
ObjectSet("_Benefit_OpenBuy", OBJPROP_YDISTANCE, BuyObj[1]);
}
if(ObjectGet("_Benefit_OpenSell", OBJPROP_XDISTANCE)!=SellObj[0] || ObjectGet("_Benefit_OpenSell", OBJPROP_YDISTANCE)!=SellObj[1])
{
if(MessageBox("?? ????????????? ?????? ??????? ????????? ?????? Sell ????? "+DoubleToStr(GetLot(1, TotalOrders[1]+1), 2)+"?", "???????????", MB_YESNO)==IDYES)
Sell=true;
ObjectSet("_Benefit_OpenSell", OBJPROP_XDISTANCE, SellObj[0]);
ObjectSet("_Benefit_OpenSell", OBJPROP_YDISTANCE, SellObj[1]);
}
SellsTP=0; BuysTP=0;
double TheSumm=0, TheSumm2=0, dTemp=0;
BuysBE=0; SellsBE=0; LOTSellsBE=-1; LOTBuysBE=-1;
ObjectSet("_Benefit_BuyBE",OBJPROP_PRICE1,0);
if(TotalOrders[0]>0)
{
for(int cikl=0;cikl<=(highestBuy-lowestBuy)/Point;cikl++)
{
BuysBE=lowestBuy+cikl*Point;
TheSumm=0;
TheSumm2=0;
for(i=0;i<TotalOrders[0];i++)
{
dTemp=(BuysBE-Orders[0][i][3])/Point*Orders[0][i][6];
TheSumm=TheSumm+dTemp;
if(i<2) TheSumm2=TheSumm2+dTemp;
}
if(NO(TheSumm2)>=0.0 && LOTBuysBE<0) LOTBuysBE=BuysBE;
if(NO(TheSumm)>=0.0)
{
ObjectSet("_Benefit_BuyBE",OBJPROP_PRICE1,BuysBE);
if(NO(TP1)!=0.0) BuysTP=BuysBE+TP1; else BuysTP=0;
if(TotalOrders[0]>1 && NO(TP)!=0.0) BuysTP=BuysBE+TP;
break;
}
}
}
ObjectSet("_Benefit_SellBE",OBJPROP_PRICE1,0);
if(TotalOrders[1]>0)
{
for(cikl=(highestSell-lowestSell)/Point;cikl>=0;cikl--)
{
SellsBE=lowestSell+cikl*Point;
TheSumm=0;
TheSumm2=0;
for(i=0;i<TotalOrders[1];i++)
{
dTemp=(Orders[1][i][3]-SellsBE)/Point*Orders[1][i][6];
TheSumm=TheSumm+dTemp;
if(i<2) TheSumm2=TheSumm2+dTemp;
}
if(NO(TheSumm2)>=0.0 && LOTSellsBE<0) LOTSellsBE=SellsBE;
if(NO(TheSumm)>=0.0)
{
ObjectSet("_Benefit_SellBE",OBJPROP_PRICE1,SellsBE);
if(NO(TP1)!=0.0) SellsTP=SellsBE-TP1; else SellsTP=0;
if(TotalOrders[1]>1 && NO(TP)!=0.0) SellsTP=SellsBE-TP;
break;
}
}
}
LOTBuysTP=LOTBuysBE+RRS_TP;
LOTSellsTP=LOTSellsBE-RRS_TP;
ObjectSet("_Benefit_LotTPBuy",OBJPROP_PRICE1,0);
ObjectSet("_Benefit_LotTPSell",OBJPROP_PRICE1,0);
ObjectSet("_Benefit_BuyTP",OBJPROP_PRICE1,0);
ObjectSet("_Benefit_SellTP",OBJPROP_PRICE1,0);
if(NO(BuysTP)>0) ObjectSet("_Benefit_BuyTP",OBJPROP_PRICE1,BuysTP);
if(NO(SellsTP)>0) ObjectSet("_Benefit_SellTP",OBJPROP_PRICE1,SellsTP);
if(LOTBuysBE>0 && TotalOrders[0]>=RRS_nOrder && RRS) ObjectSet("_Benefit_LotTPBuy",OBJPROP_PRICE1,LOTBuysTP);
if(LOTSellsBE>0 && TotalOrders[1]>=RRS_nOrder && RRS) ObjectSet("_Benefit_LotTPSell",OBJPROP_PRICE1,LOTSellsTP);
double maxlot=AccountFreeMargin()/MarketInfo(Symbol(), MODE_MARGINREQUIRED);
if(!IsTesting() || (IsTesting() && IsVisualMode()))
{
int Yt[3]={50, 350, 200}, Xt[3]={110, 110, 110};
color textColor=White;
ObjectCreateEx("_Benefit_t1_body", Yt[0]-30, Xt[0]-5, 23, 0, true);
ObjectSetText("_Benefit_t1_body", "ggg", 110, "Webdings", C'62,62,62'); //???? ??????? ????
ObjectCreateEx("_Benefit_t1_Header", Yt[0]-25, Xt[0]+110, 23, 0);
ObjectSetText("_Benefit_t1_Header", "BUY-SIDE", 16, "Dungeon", White); //????????? Buy
ObjectCreateEx("_Benefit_t1_1_1", Yt[0], Xt[0], 23, 0);
ObjectSetText("_Benefit_t1_1_1", "???????: "+DoubleToStr(buys, 0), 10, "Courier New", textColor);
ObjectCreateEx("_Benefit_t1_1_2", Yt[0]+15, Xt[0], 23, 0);
ObjectSetText("_Benefit_t1_1_2", "?????: "+DoubleToStr(lotsBuys, 2), 10, "Courier New", textColor);
ObjectCreateEx("_Benefit_t1_1_3", Yt[0]+15*2, Xt[0], 23, 0);
ObjectSetText("_Benefit_t1_1_3", "??????? ??: "+DoubleToStr(BuysTP, Digits), 10, "Courier New", textColor);
ObjectCreateEx("_Benefit_t1_1_4", Yt[0]+15*3, Xt[0], 23, 0);
ObjectSetText("_Benefit_t1_1_4", "??????? LTP:"+DoubleToStr(LOTBuysTP, Digits), 10, "Courier New", textColor);
ObjectCreateEx("_Benefit_t1_2_1", Yt[0]+15*0, Xt[0]+160, 23, 0);
ObjectSetText("_Benefit_t1_2_1", "Profit: "+DoubleToStr(profitBuys, 2), 10, "Courier New", texПоказано первые 50% кода (символов: 30486)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.