← К каталогу
Исходный код · ID 658

TopBottomEA

topbottomea v1.31.mq4
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

TopBottomEA — торговый советник для платформы MetaTrader 4, работающий на основе анализа волатильности рынка. Советник использует индикаторы Боллинджера и Williams %R для формирования торговых сигналов и управляет позициями с фиксированными уровнями стоп-лосс и тейк-профит. Поддерживается режим сложного процента для динамического расчёта размера лота на основе текущего equity. Советник адаптирует свои параметры в зависимости от торгового инструмента и работает в заданных временных окнах, контролируя допустимый спред.

Настройки программы

НастройкаОписание
Lots Лот — Размер лота для открытия сделок.
Compoundinterestswitch Сложный процент — Включает режим расчёта лота на основе текущего equity и процента риска.
Risk Риск — Процент риска от equity, используемый при расчёте размера лота в режиме сложного процента.
ParameterSwitching Переключение параметров — Включает автоматическую подстройку параметров советника в зависимости от торгового символа.
Volatility Волатильность — Период индикатора Williams %R, используемый для оценки волатильности.
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"

extern double Lots = 0.1;                   // 6B594B0
extern bool Compoundinterestswitch = false; // byte_6B594B8
extern int Risk = 40;                       // 6B594C0
extern bool ParameterSwitching = false;     // byte_6B594C8
extern int Volatility = 110;                // 6B594D0
extern int StopLoss = 800;                  // 6B594D8
extern int Profit = 300;                    // 6B594E0
extern double Pointdifferencelimit = 50.0;  // 6B594E8
extern bool Displayswitch = false;          // 6B594F0
extern int Magic = 888999;                  // 6B594F8
extern string CommentName = "TopBottomEA";  // 6B59500

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;

int 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 (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 = iBands(0, 1, 20, 2.0, 0, 0, 1, 0);

    v67 = iBands(0, 1, 20, 2.0, 0, 0, 2, 0);

    v66 = iWPR(0, 1, dword_6B59710, 0);

    TesterHideIndicators(0);
    qword_6B59550 = iTime(0, 1, 1);
    qword_6B59560 = iTime(0, 1, 1);
    sub_5546348();
    if (Compoundinterestswitch == 1)
    {

        dbl_6B59728 = StringToDouble(DoubleToString(AccountEquity() * Risk / qword_6B59510, 2));
    }
    else
    {
        dbl_6B59728 = Lots;
    }

    if (IsTesting() == 1)
    {
        if (Hour() >= dword_6B59530 && Hour() <= dword_6B59534 || Hour() >= dword_6B59538 && 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_6B59

Показано первые 50% кода (символов: 19737)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 973,70₽ ≈ $24.13