TopBottomEA
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «topbottomea @lifeindreamsworld.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
TopBottomEA — это торговый советник для MetaTrader 5, представленный в исходном коде как результат автоматической конвертации из MQL4 в MQL5. Советник работает на одном символе графика, использует торговые операции и вспомогательные обёртки для совместимости с MQL5. В коде присутствуют обработчики инициализации, деинициализации и тика, а также вспомогательные классы для работы с торговлей и индикаторами.
Советник анализирует рыночные данные с помощью индикаторов полос Боллинджера и Williams Percent Range, а также учитывает спред и волатильность. На основе этих данных принимаются решения об открытии и закрытии позиций. В коде предусмотрены настройки для управления лотом, риском, стоп-лоссом, тейк-профитом и другими параметрами.
Советник поддерживает как тестовый режим, так и реальную торговлю, с разными условиями по времени. Присутствует возможность автоматического расчёта лота в зависимости от капитала и риска. Также реализовано отображение информации на графике при включённой настройке. Все торговые операции выполняются с учётом магического номера и комментария.
Настройки программы
| Настройка | Описание |
|---|---|
| __Lots__ | Фиксированный размер торгового лота, используемый при выключенном режиме автоматического расчёта. |
| __Compoundinterestswitch__ | Переключатель режима автоматического расчёта лота на основе капитала и риска. При включении лот рассчитывается динамически. |
| __Risk__ | Процент риска от капитала, используемый при автоматическом расчёте лота. |
| __ParameterSwitching__ | Переключатель режима автоматического подбора параметров в зависимости от торгового инструмента. При включении параметры адаптируются под символ. |
| __Volatility__ | Параметр волатильности, влияющий на расчёт индикатора и принятие торговых решений. |
| __StopLoss__ | Уровень стоп-лосса в пунктах, используемый для ограничения убытков по открытым позициям. |
| __Profit__ | Целевой уровень прибыли в пунктах, используемый для закрытия позиций. |
| __Pointdifferencelimit__ | Пороговое значение разницы пунктов, используемое для определения условий торговли. |
| __Displayswitch__ | Переключатель отображения информации на графике. При включении на графике отображаются дополнительные данные. |
| __Magic__ | Уникальный идентификатор (магическое число) для идентификации ордеров и позиций, открытых советником. |
| __CommentName__ | Текст комментария, который добавляется к торговым операциям советника. |
Поиск по коду файла
#property version "1.31"
#property description " The advantages of TopBottomEA: the first EA to support"
#property description " the work of small capital, real trading for more than 4 years;"
#property description "this EA is based on volatility adaptive mechanism, only one sing"
#property description "le at a time, each single with a stop loss, an average of about"
#property description "4 single per day, holding a single length of about 12 hours, usi"
#property description "ng Dukascopy real historical data, with $20 limit capital challe"
#property description "nge back test run through more than 10 years"
input double __Lots__ = 0.1; // 6B594B0
double Lots = __Lots__;
input bool __Compoundinterestswitch__ = false; // byte_6B594B8
bool Compoundinterestswitch = __Compoundinterestswitch__;
input int __Risk__ = 40; // 6B594C0
int Risk = __Risk__;
input bool __ParameterSwitching__ = false; // byte_6B594C8
bool ParameterSwitching = __ParameterSwitching__;
input int __Volatility__ = 110; // 6B594D0
int Volatility = __Volatility__;
input int __StopLoss__ = 800; // 6B594D8
int StopLoss = __StopLoss__;
input int __Profit__ = 300; // 6B594E0
int Profit = __Profit__;
input double __Pointdifferencelimit__ = 50.0; // 6B594E8
double Pointdifferencelimit = __Pointdifferencelimit__;
input bool __Displayswitch__ = false; // 6B594F0
bool Displayswitch = __Displayswitch__;
input int __Magic__ = 888999; // 6B594F8
int Magic = __Magic__;
input string __CommentName__ = "TopBottomEA"; // 6B59500
string CommentName = __CommentName__;
double qword_6B59510 = 1000000; // 6B59510
double qword_6B58FB0=Point();
int dword_6B59520 = 1000;
int dword_6B59524 = 150;
int dword_6B59528 = 5;
int dword_6B5952C = 5;
int dword_6B59530 = 20;
int dword_6B59534 = 24;
int dword_6B59538 = 0;
int dword_6B5953C = 3;
int dword_6B59540 = 30;
bool byte_6B59544 = 1;
int qword_6B59548 = 0;
int qword_6B59550 = 0;
int qword_6B59558 = 0;
int qword_6B59560 = 0;
int dword_6B59568 = 0;
int dword_6B5956C = 0;
int dword_6B59570 = 0;
double qword_6B59578 = 0;
int qword_6B59580 = 0;
int dword_6B59588 = 0;
int qword_6B59590 = 0;
int dword_6B59598 = 0;
int dword_6B5959C = 0;
int dword_6B595A0 = 0;
int dword_6B595A4 = 0;
int dword_6B595A8 = 0;
int dword_6B595AC = 0;
int qword_6B595B0 = 0;
int qword_6B595B8 = 0;
int qword_6B595C0 = 0;
int qword_6B595C8 = 0;
double dbl_6B595D0 = 0.0;
double dbl_6B595D8 = 0.0;
double dword_6B595E0 = 0;
double dword_6B595E4 = 0;
double dword_6B595E8 = 0;
double dword_6B595EC = 0;
double dword_6B595F0 = 0;
double dword_6B595F4 = 0;
double qword_6B595F8 = 0;
double qword_6B59600 = 0;
double qword_6B59608 = 0;
double qword_6B59610 = 0;
double qword_6B59618 = 0;
int qword_6B59620 = 0;
int dword_6B59628 = 0;
int dword_6B5962C = 0;
int dword_6B59630 = 0;
int dword_6B59634 = 0;
int dword_6B59638 = 0;
int dword_6B5963C = 0;
int dword_6B59640 = 0;
int dword_6B59644 = 0;
int dword_6B59648 = 0;
int dword_6B5964C = 0;
int dword_6B59650 = 0;
int dword_6B59658 = 0;
int dword_6B5965C = 0;
int qword_6B59660 = 0;
int dword_6B59668 = 0;
int dword_6B5966C = 0;
int qword_6B59670 = 0;
int dword_6B59678 = 0;
int dword_6B5967C = 0;
int dword_6B59680 = 0;
int dword_6B59684 = 0;
int dword_6B59688 = 0;
int dword_6B5968C = 0;
int qword_6B59690 = 0;
int qword_6B59698 = 0;
int dword_6B596A0 = 0;
int dword_6B596A4 = 0;
int dword_6B596A8 = 0;
int dword_6B596AC = 0;
int dword_6B596B0 = 0;
int dword_6B596B4 = 0;
int dword_6B596B8 = 0;
int dword_6B596BC = 0;
int dword_6B596C0 = 0;
int dword_6B596C4 = 0;
int dword_6B596C8 = 0;
int dword_6B596CC = 0;
int dword_6B596D0 = 0;
int dword_6B596D4 = 0;
bool byte_6B596D8 = 1;
bool byte_6B596D9 = 1;
bool byte_6B596DA = 1;
int dword_6B596DC = 0;
bool byte_6B596E0 = 0;
bool byte_6B596E1 = 0;
int dword_6B596E4 = 0;
int dword_6B596E8 = 0;
int dword_6B596EC = 0;
int dword_6B596F0 = 0;
int dword_6B596F4 = 0;
int dword_6B596F8 = 0;
int dword_6B596FC = 0;
int dword_6B59700 = 0;
int dword_6B59704 = 0;
int dword_6B59708 = 0;
int dword_6B5970C = 0;
int dword_6B58FA8;
int dword_6B59710 = Volatility;
int dword_6B59714 = StopLoss;
int dword_6B59718 = Profit;
int dword_6B5971C = 1000;
int dword_6B59720 = 150;
double dbl_6B59728 = 0.0;
void OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
char v1[12]; // [esp+4h] [ebp-20h] BYREF
char v2[12]; // [esp+10h] [ebp-14h] BYREF
int i; // [esp+1Ch] [ebp-8h]
int v4; // [esp+20h] [ebp-4h]
/*
memset(v2, 0, sizeof(v2));
memset(v1, 0, sizeof(v1));
for ( i = sub_1730B50(-1) - 1; i >= 0; --i )
{
sub_17306C0(i);
sub_173C190(1, dword_6B58FD4, v2);
if ( StringFind(v2, 84521250, 0) >= 0 )
{
sub_17306C0(i);
sub_173C190(1, dword_6B58FD4, v1);
ObjectDelete(0, 0, v1);
}
}
*/
v4 = 0;
}
void __OnTick__()
{
double v67, v68, v66;
if (DFCC::MarketInfo(0, 13) <= Pointdifferencelimit)
{
byte_6B59544 = 1;
}
else
{
byte_6B59544 = 0;
}
if (ParameterSwitching)
{
if (StringFind(Symbol(), "CHFSGD", 0) < 0 && StringFind(Symbol(), "GBPSGD", 0) < 0)
{
dword_6B59710 = Volatility;
dword_6B59714 = StopLoss;
dword_6B59718 = Profit;
dword_6B5971C = dword_6B59520;
dword_6B59720 = dword_6B59524;
}
else
{
dword_6B59710 = 35;
dword_6B59714 = StopLoss;
dword_6B59718 = Profit;
dword_6B5971C = dword_6B59520;
dword_6B59720 = 0;
}
}
else
{
if (StringFind(Symbol(), "GBPCAD", 0) >= 0)
{
dword_6B59710 = 110;
dword_6B59714 = 800;
dword_6B59718 = 300;
dword_6B5971C = dword_6B59520;
dword_6B59720 = dword_6B59524;
}
if (StringFind(Symbol(), "EURSGD", 0) >= 0)
{
dword_6B59710 = 140;
dword_6B59714 = 700;
dword_6B59718 = 160;
dword_6B5971C = dword_6B59520;
dword_6B59720 = dword_6B59524;
}
if (StringFind(Symbol(), "GBPCHF", 0) >= 0)
{
dword_6B59710 = 110;
dword_6B59714 = 600;
dword_6B59718 = 200;
dword_6B5971C = dword_6B59520;
dword_6B59720 = dword_6B59524;
}
if (StringFind(Symbol(), "CHFSGD", 0) >= 0)
{
dword_6B59710 = 60;
dword_6B59714 = 700;
dword_6B59718 = 160;
dword_6B5971C = dword_6B59520;
dword_6B59720 = 0;
}
if (StringFind(Symbol(), "GBPSGD", 0) >= 0)
{
dword_6B59710 = 35;
dword_6B59714 = 700;
dword_6B59718 = 160;
dword_6B5971C = dword_6B59520;
dword_6B59720 = 0;
}
}
TesterHideIndicators(1);
v68 = DFCC::iBands(0, 1, 20, 2.0, 0, 0, 1, 0);
v67 = DFCC::iBands(0, 1, 20, 2.0, 0, 0, 2, 0);
v66 = DFCC::iWPR(0, 1, dword_6B59710, 0);
TesterHideIndicators(0);
qword_6B59550 = DFCC::iTime(0, 1, 1);
qword_6B59560 = DFCC::iTime(0, 1, 1);
sub_5546348();
if (Compoundinterestswitch == 1)
{
dbl_6B59728 = StringToDouble(DoubleToString(DFCC::AccountEquity() * Risk / qword_6B59510, 2));
}
else
{
dbl_6B59728 = Lots;
}
if (DFCC::IsTesting() == 1)
{
if (DFCC::Hour() >= dword_6B59530 && DFCC::Hour() <= dword_6B59534 || DFCC::Hour() >= dword_6B59538 && DFCC::Hour() <= dword_6B5953C)
{
if (v68-v67< dword_6B5971C*qword_6B58FB0)
{
if (v68-v67 > dword_6B59720 * qword_6B58FB0)
{
if (dword_6B595A0 + dword_6B59598 < 1 && byte_6B59544 == 1)
{
if (v66 < dword_6B59528 - 100 && qword_6B59548 != qword_6B59550)
{
dword_6B59570 = -1;
qword_6B59578 = 0;
dword_6B59588 = 0;
qword_6B59548 = qword_6B59550;
qword_6B59578 = NormalizeDouble(Ask-dword_6B59714 *qword_6B58FB0 , 5);
qword_6B59580 = 0;
/* // LOBYTE(v59) = dbl_6B59728 >;
if (dbl_6B59728 < SymbolInfoDouble(0, 35))
dbl_6B59728 = SymbolInfoDouble(0, 35);//minimum trade volume
if (dbl_6B59728 > SymbolInfoDouble(0, 34))
dbl_6B59728 = SymbolInfoDouble(0, 34);//maximum trade volume
*/
if (DFCC::AccountFreeMarginCheck(Symbol(),1, dbl_6B59728) > 0 && dword_6B59570 < 0 && dword_6B59588 < 10)
{
do
{
dword_6B59570 = DFCC::OrderSend(
Symbol(),
0,
dbl_6B59728,//Opening volume
Ask,//Opening price
dword_6B59540,//Slippage
qword_6B59578,//Stop loss
qword_6B59580,//Take profit
CommentName,
Magic,
0,
16711680);
if (dword_6B59570 < 0)
{
dword_6B58FA8 = 0;
}
++dword_6B59588;
} while (dword_6B59570 < 0 && dword_6B59588 < 10);
}
}
}
if (dword_6B595A0 + dword_6B59598 < 1 && byte_6B59544 == 1)
{
if (v66 > -dword_6B59528 && qword_6B59558 != qword_6B59560)
{
dword_6B59570 = -1;
qword_6B59578 = 0;
dword_6B59588 = 0;
qword_6B59558 = qword_6B59560;
qword_6B59578 = NormalizeDouble(Bid+dword_6B59714 *qword_6B58FB0 , 5);
qword_6B59580 = 0;
/*
if (dbl_6B59728 < SymbolInfoDouble(0, 35))
dbl_6B59728 = SymbolInfoDouble(0, 35);//minimum trade volume
if (dbl_6B59728 > SymbolInfoDouble(0, 34))
dbl_6B59728 = SymbolInfoDouble(0, 34);//maximum trade volume
*/
if (DFCC::AccountFreeMarginCheck(Symbol(), 1, dbl_6B59728) > 0 && dword_6B59570 < 0 && dword_6B59588 < 10)
{
do
{
dword_6B59570 = DFCC::OrderSend(
Symbol(),
1,
dbl_6B59728,
Bid,
dword_6B59540,
qword_6B59578,
qword_6B59580,
CommentName,
Magic,
0,
255);
if (dword_6B59570 < 0)
{
dword_6B58FA8 = 0;
}
++dword_6B59588;
} while (dword_6B59570 < 0 && dword_6B59588 < 10);
}
}
}
}
}
}
}
else
{
if (DFCC::TimeHour(TimeGMT()) >= 18 || DFCC::TimeHour(TimeGMT()) <= 1)
{
if (v68-v67 <dword_6B5971C*qword_6B58FB0)
{
if (v68-v67 > dword_6B59720 * qword_6B58FB0)
{
if (dword_6B595A0 + dword_6B59598 < 1 && byte_6B59544 == 1)
{
if (v66 < dword_6B59528 - 100 && qword_6B59548 != qword_6B59550)
{
dword_6B59570 = -1;
qword_6B59578 = 0;
dword_6B59588 = 0;
qword_6B59548 = qword_6B59550;
qword_6B59578 = NormalizeDouble(Ask-dword_6B59714 *qword_6B58FB0 , 5);
qword_6B59580 = 0;
/*
if (dbl_6B59728 < SymbolInfoDouble(0, 35))
dbl_6B59728 = SymbolInfoDouble(0, 35);//minimum trade volume
if (dbl_6B59728 > SymbolInfoDouble(0, 34))
dbl_6B59728 = SymbolInfoDouble(0, 34);//maximum trade volume
*/
if (DFCC::AccountFreeMarginCheck(Symbol(),1, dbl_6B59728) > 0 && dword_6B59570 < 0 && dword_6B59588 < 10)
{
do
{
dword_6B59570 = DFCC::OrderSend(
Symbol(),
0,
dbl_6B59728,//Opening volume
Ask,//Opening price
dword_6B59540,//Slippage
qword_6B59578,//Stop loss
qword_6B59580,//Take profit
CommentName,
Magic,
0,
16711680);
if (dword_6B59570 < 0)
{
dword_6B58FA8 = 0;
}
++dword_6B59588;
} while (dword_6B59570 < 0 && dword_6B59588 < 10);
}
}
}
if (dword_6B595A0 + dword_6B59598 < 1 && byte_6B59544 == 1)
{
if (v66 > -dword_6B59528 && qword_6B59558 != qword_6B59560)
{
dword_6B59570 = -1;
qword_6B59578 = 0;
dword_6B59588 = 0;
qword_6B59558 = qword_6B59560;
qword_6B59578 = NormalizeDouble(Bid+dword_6B59714 *qword_6B58FB0 , 5);
qword_6B59580 = 0;
/*
if (dbl_6B59728 < SymbolInfoDouble(0, 35))
dbl_6B59728 = SymbolInfoDouble(0, 35);//minimum trade volume
if (dbl_6B59728 > SymbolInfoDouble(0, 34))
dbl_6B59728 = SymbolInfoDouble(0, 34);//maximum trade volume
*/
if (DFCC::AccountFreeMarginCheck(Symbol(), 1, dbl_6B59728) > 0 && dword_6B59570 < 0 && dword_6B59588 < 10)
{
do
{
dword_6B59570 = DFCC::OrderSend(
Symbol(),
1,
dbl_6B59728,
Bid,
dword_6B59540,
qword_6B59578,
qword_6B59580,
CommentName,
Magic,
0,
255);
if (dword_6B59570 < 0)
{
dword_6B58FA8 = 0;
}
++dword_6B59588;
} while (dword_6B59570 < 0 && dword_6B59588 < 10);
}
}
}
}
}
}
}
if (dword_6B59598 > 0 && byte_6B59544 == 1)
{
if (v66 > (-dword_6B5952C))
{
for (int i = DFCC::OrdersTotal() - 1; i >= 0; --i)
{
if (DFCC::OrderSelect(i, 0, 0))
{
if (DFCC::OrderSymbol() == Symbol() && DFCC::OrderMagicNumber() == Magic)
{
if (DFCC::OrderType() == 0)
{
/*
OrderClosePrice();
v58 = *(_QWORD *)&Lots;
OrderLots();
v56 = *(_QWORD *)&Lots;
v55 = OrderTicket();
*/
DFCC::OrderClose(DFCC::OrderTicket(), DFCC::OrderLots(), DFCC::OrderClosePrice(), 300, 0xFFFF);
printf("Long position close 1");
}
}
}
}
}
}
if (dword_6B595A0 > 0 && byte_6B59544 == 1)
{
/*
v55 = dword_6B5952C - 100;
*(double *)&qword_6B58FF4 = (double)(dword_6B5952C - 100);
LOBYTE(v55) = v66 < *(double *)&qword_6B58FF4;
*/
if (v66 < dword_6B5952C - 100)
{
for (int j = DFCC::OrdersTotal() - 1; j >= 0; --j)
{
if (DFCC::OrderSelect(j, 0, 0))
{
if (DFCC::OrderSymbol() == Symbol() && DFCC::OrderMagicNumber() == Magic)
{
if (DFCC::OrderType() == 1)
{
/*
OrderClosePrice();
v54 = *(_QWORD *)&Lots;
OrderLots();
v52 = *(_QWORD *)&Lots;
LODWORD(v51) = OrderTicket();
OrderClose(LODWORD(v51), v52, v54, 300, 0xFFFF);
*/
DFCC::OrderClose(DFCC::OrderTicket(), DFCC::OrderLots(), DFCC::OrderClosePrice(), 300, 0xFFFF);
}
}
}
}
}
}
if (dword_6B59598 > 0 && byte_6B59544 == 1)
{
/*
v51 = *(double *)&qword_6B590B4 - *(double *)&qword_6B595F8;
*(double *)&qword_6B58FF4 = (double)dword_6B59718 * *(double *)&qword_6B58FB0;
v4 = *(double *)&qword_6B590B4 - *(double *)&qword_6B595F8;
&qword_6B590B4 - *&qword_6B595F8
LOBYTE(v51) = v4 > *(double *)&qword_6B58FF4;
*/
if (Bid - qword_6B595F8 > dword_6B59718 * qword_6B58FB0)
{
for (int k = DFCC::OrdersTotal() - 1; k >= 0; --k)
{
if (DFCC::OrderSelect(k, 0, 0))
{
if (DFCC::OrderSymbol() == Symbol() && DFCC::OrderMagicNumber() == Magic)
{
if (DFCC::OrderType() == 0)
{
/*
OrderClosePrice();
v50 = *(_QWORD *)&Lots;
OrderLots();
v48 = *(_QWORD *)&Lots;
LODWORD(v47) = OrderTicket();
OrderClose(LODWORD(v47), v48, v50, 300, 0xFFFF);
*/
DFCC::OrderClose(DFCC::OrderTicket(), DFCC::OrderLots(), DFCC::OrderClosePrice(), 300, 0xFFFF);
printf("Long position close 2");
}
}
}
}
}
}
if (dword_6B595A0 > 0 && byte_6B59544 == 1)
{
/*
v47 = *(double *)&qword_6B59600 - *(double *)&qword_6B590BC;
*(double *)&qword_6B58FF4 = (double)dword_6B59718 * *(double *)&qword_6B58FB0;
v6 = *(double *)&qword_6B59600 - *(double *)&qword_6B590BC;
LOBYTE(v47) = v6 > *(double *)&qword_6B58FF4;
*/
if (qword_6B59600 - Ask > dword_6B59718 * qword_6B58FB0)
{
for (int m = DFCC::OrdersTotal() - 1; m >= 0; --m)
{
if (DFCC::OrderSelect(m, 0, 0))
{
if (DFCC::OrderSymbol() == Symbol() && DFCC::OrderMagicNumber() == Magic)
{
if (DFCC::OrderType() == 1)
{
DFCC::OrderClose(DFCC::OrderTicket(), DFCC::OrderLots(), DFCC::OrderClosePrice(), 300, 0xFFFF);
}
}
}
}
}
}
}
int sub_5546348()
{
int v1; // [esp+0h] [ebp-10h]
int v2; // [esp+0h] [ebp-10h]
double v3; // [esp+0h] [ebp-10h]
double v4; // [esp+0h] [ebp-10h]
int v5; // [esp+0h] [ebp-10h]
double v6; // [esp+0h] [ebp-10h]
double v7; // [esp+0h] [ebp-10h]
int i; // [esp+8h] [ebp-8h]
dword_6B59598 = 0;
dword_6B595A0 = 0;
qword_6B595B0 = 0;
qword_6B595B8 = 0;
qword_6B595C0 = 0;
qword_6B595C8 = 0;
dbl_6B595D0 = 0.0;
dbl_6B595D8 = 0.0;
dword_6B595E8 = 0;
dword_6B595EC = 0;
dword_6B595F0 = 0;
dword_6B595F4 = 0;
qword_6B595F8 = 0;
qword_6B59600 = 0;
qword_6B59608 = 0;
qword_6B59610 = 0;
qword_6B59618 = 0;
qword_6B59620 = 0;
qword_6B59690 = 0;
qword_6B59698 = 0;
dword_6B596B0 = 0;
dword_6B596B4 = 0;
dword_6B596A0 = 0;
dword_6B596A4 = 0;
dword_6B596A8 = 0;
dword_6B596AC = 0;
dword_6B596B8 = 0;
dword_6B596BC = 0;
dword_6B59678 = 0;
dword_6B5967C = 0;
dword_6B59688 = 0;
dword_6B5968C = 0;
qword_6B59670 = 0;
qword_6B59660 = 0;
for (i = 0; i < DFCC::OrdersTotal(); ++i)
{
if (DFCC::OrderSelect(i, 0, 0))
{
if (DFCC::OrderSymbol() == Symbol() && DFCC::OrderMagicNumber() == Magic)
{
if (DFCC::OrderType())
{
if (DFCC::OrderType() == 1)
{
if (++dword_6B595A0 > dword_6B595A4)
dword_6B595A4 = dword_6B595A0;
qword_6B595B8 = qword_6B595B8 + DFCC::OrderLots();
qword_6B595C8 = DFCC::OrderLots();
dbl_6B595D8 = DFCC::OrderProfit() + DFCC::OrderCommission() + DFCC::OrderSwap() + dbl_6B595D8;
qword_6B59600 = DFCC::OrderOpenPrice();
qword_6B59610 = DFCC::OrderStopLoss();
qword_6B59620 = DFCC::OrderTakeProfit();
dword_6B596B8 = DFCC::OrderTicket();
if (dword_6B595A0 == dword_6B595A4 - 2)
{
qword_6B59660 = DFCC::OrderOpenPrice();
qword_6B59670 = DFCC::OrderLots();
dword_6B596BC = DFCC::OrderTicket();
}
}
}
else
{
if (++dword_6B59598 > dword_6B5959C)
dword_6B5959C = dword_6B59598;
qword_6B595B8 = qword_6B595B8 + DFCC::OrderLots();
qword_6B595C8 = DFCC::OrderLots();
dbl_6B595D8 = DFCC::OrderProfit() + DFCC::OrderCommission() + DFCC::OrderSwap() + dbl_6B595D8;
qword_6B595F8 = DFCC::OrderOpenPrice();
qword_6B59610 = DFCC::OrderStopLoss();
qword_6B59620 = DFCC::OrderTakeProfit();
dword_6B596B8 = DFCC::OrderTicket();
if (dword_6B59598 == dword_6B5959C - 2)
{
qword_6B59690 = DFCC::OrderOpenPrice();
qword_6B59698 = DFCC::OrderLots();
dword_6B596B4 = DFCC::OrderTicket();
}
}
}
}
}
return 0;
}
/*
sub_554698E(
int a1,
int a2,
int a3,
int a4,
int a5,
int a6,
int a7,
int a8,
int a9,
int a10,
int a11,
int a12,
int a13,
int a14,
int a15,
char a16,
char a17,
char a18,
char a19,
int a20,
int a21)
dword_6B58FA8 = 0;
Print(a1, a2,a3, a4,);
ObjectSetInteger(a2, a3, 102, a5, a5 >> 31);
ObjectSetInteger(a2, a3, 103, a6, a6 >> 31);
ObjectSetInteger(a2, a3, 1019, a7, a7 >> 31);
ObjectSetInteger(a2, a3, 1020, a8, a8 >> 31);
ObjectSetInteger(a2, a3, 101, a9, a9 >> 31);
ObjectSetString(a1, a2, a3, 999, a10);
ObjectSetString(a1, a2, a3, 1001, a11);
ObjectSetInteger(a2, a3, 100, a12, a12 >> 31);
ObjectSetInteger(a2, a3, 6, a13, 0);
ObjectSetInteger(a2, a3, 1025, a14, 0);
ObjectSetInteger(a2, a3, 1035, a15, 0);
ObjectSetInteger(a2, a3, 9, a17, a17 >> 32);
ObjectSetInteger(a2, a3, 1018, a16, a16 >> 32);
ObjectSetInteger(a2, a3, 1000, a18, a18 >> 32);
ObjectSetInteger(a2, a3, 17, a18, a18 >> 32);
ObjectSetInteger(a2, a3, 208, a19, a19 >> 32);
ObjectSetInteger(a2, a3, 207, a20, a21);
return 1;
}*/
int FXD_SELECTED_TYPE = 0;// Indicates what is selected by OrderSelect, 1 for trade, 2 for pending order, 3 for history trade
ulong FXD_SELECTED_TICKET = 0;// The ticket number selected by OrderSelect
int FXD_INDICATOR_COUNTED_MEMORY = 0;// Used as a memory for IndicatorCounted() function. It needs to be outside of the function, because when OnCalculate needs to be reset, this memory must be reset as well.
int Bars = Bars(_Symbol, PERIOD_CURRENT);
int Digits = _Digits;
double Point = _Point;
double Ask, Bid, Close[], High[], Low[], Open[];
long Volume[];
datetime Time[];
void OnTick()
{
// код доступен только после оплаты
}
class DFCC
Показано первые 50% кода (символов: 48913)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.