Новости и аналитика рынка FOREX от FxPro

19.06.19 Wall Street. Акции на премаркете
19.06.19 Канадский доллар резко вырос после публикации данных по инфляции в Канаде.
19.06.19 До начала регулярной сессии поступили сообщения о возобновлении рейтингов акций следующих компаний
19.06.19 Обзор европейской сессии: Стерлинг растет второй день подряд, тогда как позиция мировых центральных банков становится более голубиной.
19.06.19 Новости компаний: Компания Apple (AAPL) рассматривает возможность перемещения 15-30% производства за пределы Китая на фоне торговой войны с США
Вся аналитика Forex
Экономический календарь Forex для Android Один из самых популярных экономических календарей трейдера от форекс-портала FxTeam теперь имеет мобильную версию для: Android iPhone
Показано с 1 по 4, из 4.
  1. #1
    Регистрация
    03.04.2015
    Сообщения
    3

    Red face утроение депо за неделю в 3 этапа

    Привет всем трейдерам!
    вот они, эти самые 3 этапа:
    1-записал историю (2-3 дня), 2-прогнал историю на тестере (пол дня), 3-поставил на торги (2 дня), итого для удвоения-утроения депозита вам понадобится всего 1-2 недели.
    Опасения: прибыль закрыта, но на рынке остались открытые ордера с отрицательной прибылью
    выход 1: пересидеть минус и дождаться, пока робот сам не закроет их по прибыли (проверял на собственном счёте - это максимум 1-2 недели)
    выход 2: закрыть то, что есть с минусом, ссылаясь на то, что общая прибыль больше убытка
    вопрос: сможет ли ваш счёт пересидеть минус?
    ответ: да сможет, по причине двух дней постоянного заработка

    И всё это становится возможным лишь только в случае соблюдения правил тестирования, которые указаны в инструкции, либо я приведу цитаты:
    правило 1: кредитное плечо больше 100
    правило 2: наличие у вашего брокера 5-ти знаков после точки (я не тестировал свою систему на 4-х знаках после точки)
    правило 3: не запускать другие торги на текущем счёте пока не закончится срок действия файла-чистовика (2 дня)
    правило 4: после сообщения тестера о том, что "файл-чистовик готов", необходимо прогнать найденные параметры в режиме #PROFESSIONAL MODE=1 и только после 6-10 подряд успешных запусках тестера можно использовать готовый файл-чистовик для торгов на вашем счёте
    примечание: если 6-10 успешных подряд запусков не удалось добиться, то, находясь в режиме #PROFESSIONAL MODE=1, отметить нижеперечисленные переменные шагом их будущего изменения со знаком "минус", после чего задать параметру #PROFESSIONAL MODE значение 0 и ждать, пока тестер найдёт прибыль, перебирая нижеперечисленные параметры:
    ++MAXIMUM OF ORDERS, ++LOT SIZE IN PERCENT, _MG DEPTH, _TRAILING STOP, _TRAILING STOP FIRST, ++WAITING TIME IN SECONDS, ++TRAILING SPREAD, ++TRAILING PIPS [1...>], ++MIN TPS, ++MAX TPS, ++CRUSER LOT INCREASE, ++(PRC)CANDLE WAITING
    примечание: для параметра ++CRUSER LOT INCREASE это значение может колебаться от -0.01 до -0.5 на ваше усмотрение, для остальных параметров значение шага может колебаться от -1 до -200 на ваше усмотрение

    вопрос: как определить, что всё происходит так, как надо?
    ответ: во вкладке "Эксперты" после выхода из режима #PROFESSIONAL MODE вы должны увидеть сообщение:
    "обнаружены дополнительные инструкции на этапе выхода из режима <#PROFESSIONAL>"
    - если всё так и было, то вы должны выйти ("каприз программы") из тестера, т.е. ввести "-9999" в переменную "__refresh_now" и потом заново запустить тестер в режиме автопродолжения, при условии, что параметр "PROFESSIONAL MODE [0/1]" из файла "CONFIG_SN.txt" равен нулю (-в противном случае, его необходимо будет приравнять нулю, перед следующим стартом тестера)
    вопрос: что будет, если не выполнять "каприз программы"?
    ответ: тестер не сможет найти прибыль (я вспоминаю аналогичный случай с парой USDZAR)
    вопрос: что делать, если тестер всё равно ничего не найдёт?
    ответ: приниматься за другую пару по причине того, что текущей (проблемной) валютной паре нужно время для обновления истории для следующей попытки (это примерно 1-2 дня).



    скачать весь проект по ссылке: h t t p s : / / t u s f i l e s . c o m /mvyeet9frnor (ссылка обновилась - были устранены ошибки в тестере)
    (уберите "пробел" из адреса ссылки)


    файлы истории (пара.ASK, пара.BID, пара.DAT) для EURUSD и USDZAR (плечо=200) для проверки работы тестера: h t t p s : / / t u s f i l e s . c o m /lonspth9eff2
    (уберите "пробел" из адреса ссылки)


    мой демо счёт: 2090270826 (здесь можете посмотреть работу этого советника)
    пароль инвестора: hrNMM2ffQ9
    брокер: h t t p s : / / t i c k m i l l . c o m
    (уберите "пробел" из адреса ссылки)

    цена: 100$

    для приобретения полной или демо-версии обращайтесь на почту: [email protected] (в теме укажите: "REAL" или "DEMO")
    P.S.: возможно приобрести демо-версию бесплатно, при условии, что она будет зарегистрирована на демо счёт (автор сам должен будет проверить этот счёт)

    да, совсем забыл: делайте этот параметр: "LOT SIZE IN PERCENT MIN [2.6...998]" побольше - он находится в файле "CONFIG_SN.txt".

    Вложения Вложения
    Последний раз редактировалось RDLNEO, 24.05.2019 в 22:54 Причина: икпиап

  2. #2
    Регистрация
    03.04.2015
    Сообщения
    3

    Lightbulb работает также и на 4-х знаках (новый тестер)

    значения по-умолчанию изменились в пользу торговли и на 4-х знаках (новый тестер):
    h t t p s : / / t u s f i l e s . c o m /tt9fhxpy9czq


    в тестере исправлена серьезная ошибка относительно завышения максимального количества одновременно отрытых ордеров

    P.S.:
    также теперь тестер не переключается на переменную "MAXIMUM ORDERS" при условии активности параметра "LOCK ORDERS CHANGE [0/1]=1" из файла "CONFIG_SN.txt", также по-умолчанию теперь активна программа по поиску прибыли
    h t t p s : / / t u s f i l e s . c o m /4upi8tsic6z9 (ссылка создана: 09.06.2019)
    (уберите "пробел" из адреса ссылки)
    также можете скачать обновлённый тестер из вложений: https://www.fx.ru/forum/images/attach/txt.gif
    Вложения Вложения
    Последний раз редактировалось RDLNEO, 09.06.2019 в 04:55

  3. #3
    Регистрация
    13.06.2019
    Сообщения
    9

    По умолчанию

    Спасибо большое!)))

  4. #4
    Регистрация
    03.04.2015
    Сообщения
    3

    Lightbulb теперь проверять край канала не нужно!

    теперь проверять край канала перед торгами не нужно!


    я написал индикатор и вставил его в RECEIVER_SN.mq4


    для его правильной работы вам понадобиться клавиша "F3"


    вот код индикатора (он также есть во вложениях):
    #property copyright " * * * John Doe * * * " // проверка исторических минимумов / максимумов
    #property link "https://youtu.be/A9p9RxFYHOQ"


    extern string mv="глубина проверки железных уровней в днях";
    extern int SUPER_LEVEL_DEPTH_IN_DAYS=70;
    extern string sv="глубина проверки уровней в днях";
    extern int LEVEL_DEPTH_IN_DAYS=7;
    extern string mw="5-ти знаковый брокер [1/0]:";
    extern bool five=false;


    static string s2, HID[2]={"минимумам","максимумам"};
    static double FBM;
    static int HBR;


    void init()
    {
    int de=1, de0, Digits_now, tck, SAS, dir, dir0, LMC, LMC0, SLM, SLM0, res1, out;
    double GLM, SS, hand_point, W, W1, W2, ask0, bid0, ML, MH;
    datetime TTL, DT=0;
    bool ZARID, try=false, ferrum, ferrum2;
    string st, st1, st2, st3, st4, st5, r;
    string ONOFF[2]={"запрещены","разрешены"};
    string MODES[4]={"","обычный","железобетонный","разрешённый"};
    string FERRO[2]={"",", цена в железобетонном уровне"};
    string FERR[2]={"",", цена в глобальном уровне"};
    //---------------------
    tck=2000; Digits_now=0; while (Digits_now<=0 && tck>0) {Digits_now=MarketInfo(s2, MODE_DIGITS); tck--; Sleep(5);}
    if (Digits_now<=0) {Print ("Digits=0 - робот работать не будет"); return;}
    hand_point=Point;
    if (hand_point==0) hand_point=MarketInfo(s2, MODE_POINT);
    if (hand_point==0) hand_point=1/MathPow(10,Digits_now);
    s2=Symbol();
    if (StringSubstr(s2,3,3)=="ZAR") ZARID=true; else ZARID=false;
    st="__History_deepth_(0-Exit)";
    st1="_ASK";
    st2="_BID";
    st3="_DIRECTION_[0-BUY/1-SELL]";
    st4="_LEVEL_MAX_CROSS";
    st5="_STRONG_LEVEL_MODE [0/1]";
    //---------------------------------------------------------------------------------------------------------
    // первая принудительная прокрутка истории в терминале ОБЯЗАТЕЛЬНО СКОПИРОВАТЬ В БЛОК Init() RECEIVER'а
    SS=0; tck=2000; SAS=MathMax(SUPER_LEVEL_DEPTH_IN_DAYS,LEVEL_DEPTH_ IN_DAYS);
    while (SS==0 && tck>0)
    {
    SS=iLow(s2,1440,SAS);
    tck--;
    Sleep (3);
    }
    //---------------------------------------------------------------------------------------------------------
    while (de>0)
    {
    TTL=TimeLocal();
    if (DT>TTL)
    {
    if (GlobalVariableCheck(st)) de=GlobalVariableGet(st); else {de=LEVEL_DEPTH_IN_DAYS; GlobalVariableSet(st,de);}
    //---------------------------------------------------------------
    if (de<7) SAS=de*2; else SAS=de+1;
    if (SAS<4) SAS=4; else if (SAS>12) SAS=12;
    if (five && !ZARID) {SAS*=10; W=3.7;} else if (ZARID) {W=2; if (five) SAS*=100; else SAS*=65;}
    SS=hand_point*SAS;
    //---------------------------------------------------------------
    ferrum=false;
    ferrum2=false;
    if (dir==0)
    {
    MH=iHigh(s2,1440,de);
    GLM=iGlobal(de,1-dir,ask0,ZARID,SS,W); // универсальная команда, возвращающая также железный уровень и кол-во часовых пробитий за 7 дней
    Print (r+"за "+DoubleToStr(de,0)+" дней: глобальный максимум="+DoubleToStr(GLM,Digits));
    Print ("железобетонный максимум="+DoubleToStr(FBM,Digits));
    Print ("почасовых пробитий для максимума="+DoubleToStr(HBR,0));
    if (ask0>=FBM) ferrum=true;
    if (ask0>=GLM) ferrum2=true;
    }
    else
    {
    ML=iLow(s2,1440,de);
    GLM=iGlobal(de,1-dir,bid0,ZARID,SS,W); // GLM=iGlobal(de,1,1.1340); // -- // -- // -- //
    Print (r+"за "+DoubleToStr(de,0)+" дней: глобальный минимум="+DoubleToStr(GLM,Digits));
    Print ("железобетонный минимум="+DoubleToStr(FBM,Digits));
    Print ("почасовых пробитий для минимума="+DoubleToStr(HBR,0));
    if (bid0<=FBM) ferrum=true;
    if (bid0<=GLM) ferrum2=true;
    }
    if (!try) r=""; else r="(повтор): ";
    if (!try && ((dir==1 && ML==0) || (dir==0 && MH==0))) {DT=TTL+2; try=true; Print ("ошибка функции N_"+GetLastError());} else {DT=0; try=false;}
    //------------------------------------------- здесь определяется направление создания ордера и результат: можно/нельзя:
    res1=0; // res1: 1-обычный, 2-железобетонный, 3-разрешённый
    if (HBR==0 || ferrum) res1=2; // 2-железобетонный
    if (res1==0)
    {
    if (HBR<=LMC) res1=1; else res1=3; // 1-обычный else 3-разрешённый
    }
    //------------------------------------------------------------
    out=0;
    if (res1==1) // 1-обычный
    {
    if (SLM==1 || ferrum2) out=0; else out=1;
    }
    if (out==0)
    {
    if (res1==2) out=0; else if (res1==3 && !ferrum2) out=1;
    }
    Print ("РЕЗУЛЬТАТЫ: режим="+MODES[res1]+FERRO[ferrum]+FERR[ferrum2]+", итого торги "+ONOFF[out]+"!");
    //------------------------------------------------------------------------------------------------------------------------
    }
    else
    {
    if (GlobalVariableCheck(st))
    {
    de=GlobalVariableGet(st);
    if (de!=de0) {DT=TTL+2; de0=de;}
    }
    else {de=LEVEL_DEPTH_IN_DAYS; GlobalVariableSet(st,de);}
    //-----------------------------------------------------------
    if (GlobalVariableCheck(st1))
    {
    ask0=GlobalVariableGet(st1);
    if (ask0!=W1) {DT=TTL+2; W1=ask0;}
    }
    else {ask0=MarketInfo(s2,MODE_ASK); GlobalVariableSet(st1,ask0);}
    //-----------------------------------------------------------
    if (GlobalVariableCheck(st2))
    {
    bid0=GlobalVariableGet(st2);
    if (bid0!=W2) {DT=TTL+2; W2=bid0;}
    }
    else {bid0=MarketInfo(s2,MODE_BID); GlobalVariableSet(st2,bid0);}
    //-----------------------------------------------------------
    if (GlobalVariableCheck(st3))
    {
    dir=GlobalVariableGet(st3);
    if (dir!=dir0) {DT=TTL+2; dir0=dir;}
    }
    else {dir=0; GlobalVariableSet(st3,dir);}
    //-----------------------------------------------------------
    if (GlobalVariableCheck(st4))
    {
    LMC=GlobalVariableGet(st4);
    if (LMC!=LMC0) {DT=TTL+2; LMC0=LMC;}
    }
    else {LMC=4; GlobalVariableSet(st4,LMC);}
    //-----------------------------------------------------------
    if (GlobalVariableCheck(st5))
    {
    SLM=GlobalVariableGet(st5);
    if (SLM!=SLM0) {DT=TTL+2; SLM0=SLM;}
    }
    else {SLM=1; GlobalVariableSet(st5,SLM);}
    //-----------------------------------------------------------
    Sleep (10);
    }
    }
    if (GlobalVariableCheck(st)) GlobalVariableDel(st);
    Print ("Выход...");
    }

    void deinit()
    {
    return;
    }

    void start()
    {
    return;
    }

    double iGlobal(int d0, bool high_ID, double price, bool ZAR, double shift0, double zuma_W)
    {
    int i0, imax, imax2, att, re, SLD;

    int i1, i2;

    double x0, found1, found2;
    //-----------------------------------// found1 - за 7 дней, found2 - за 60 дней
    imax=d0*24; // 7*24=168
    imax2=imax;
    if (ZAR) SLD=SUPER_LEVEL_DEPTH_IN_DAYS/4; else SLD=SUPER_LEVEL_DEPTH_IN_DAYS;
    if (imax2<SLD) imax2=SLD;
    HBR=0;
    if (high_ID) {found1=0; found2=0;} else {found1=99999; found2=99999;}
    for (i0=0; i0<=imax2; i0++)
    {
    x0=0; att=93;
    while (x0==0 && att>0)
    {
    if (high_ID)
    {
    x0=iHigh(s2,1440,i0); // дневной максимум
    if (x0!=0)
    {
    if (i0<=SLD) i1=i0;
    if (x0>found1 && i0<=d0) found1=x0;
    if (x0>found2 && i0<=SLD) found2=x0;
    }
    x0=iHigh(s2,60,i0); // часовой максимум

    if (x0!=0) i2=i0;

    if (i0<=imax && x0>=price && price>=iLow(s2,60,i0)) re++;
    }
    else
    {
    x0=iLow(s2,1440,i0); // дневной минимум

    if (x0!=0)
    {
    if (i0<=SLD) i1=i0;
    if (x0<found1 && i0<=d0) found1=x0;
    if (x0<found2 && i0<=SLD) found2=x0;
    }
    x0=iLow(s2,60,i0); // часовой минимум

    if (x0!=0) i2=i0;

    if (i0<=imax && x0<=price && price<=iHigh(s2,60,i0) && x0!=0) re++;
    }
    if (x0==0) att--;
    }
    }//for (i0=0; i0<=imax2; i0++)
    //----------------------------------------------------
    if (high_ID) {found1-=shift0; FBM=found2-shift0*zuma_W;} else {found1+=shift0; FBM=found2+shift0*zuma_W;}
    HBR=re;
    //----------------------------------------

    if (i2<imax) Print ("фактически удалось собрать только за "+DoubleToStr(i2,0)+" часов истории по "+HID[high_ID]);
    if (i1<SLD) Print ("фактически удалось собрать только за "+DoubleToStr(i1,0)+" дней истории по "+HID[high_ID]);

    return (found1);
    }

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 16.02.2018, 15:23
  2. Ответов: 0
    Последнее сообщение: 18.06.2017, 15:51
  3. Ответов: 0
    Последнее сообщение: 25.08.2010, 08:42
  4. Ответов: 0
    Последнее сообщение: 15.09.2008, 13:36
  5. Ответов: 0
    Последнее сообщение: 08.09.2008, 10:19

Ваши права в разделе

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •