Пишем свой советник
Страница 1 из 15 1 2 3 4 5 11 ... ПоследняяПоследняя
Показано с 1 по 10 из 145

Тема: Пишем свой советник

  1. #1
    Теоретик Аватар для PAZITIV
    Регистрация
    20.12.2011
    Адрес
    47°57′16.04″ с. ш. 33°25′22.28″ в. д
    Сообщений
    1,472
    Promo (¢)
    -10
    Благодарности
    Получено: 52
    Отправлено: 77

    Пишем свой советник

    С начала ознакомления с форексом хочу написать свой советник. А вот точной идеи или достаточно простой стратегии пока не удавалось найти. Но в теме "Индикаторы" попался файл QQEAlertV3 и предложение Festival'я написать по нём советник. Погуглив немного, нашёл ещё и индикатор QQEA, который отображается как две кривых, а не стрелками.
    Вот теперь задался целью написать на основе последнего индикатора советник. Для этого нужно освоить MQL (хотя бы необходимые азы). В этой теме планирую выкладывать все этапы написания совтеника и попутно буду оаписывать встречающиеся подводные камни и пути их устранения.
    Думаю тема будет интересна многим пользователям, т.к. по ней ней они, возможно, смогут автоматизировать свои торговые стратегии. Тем самым освободят своё время от торчания перед монитором.

    Итак, что же мы будем делать?! Для начала нужно разработать алгоритм работы советника по данному индикатору (скрин индикаторов на графике и файлы в конце поста; нас интересует нижнее окно индикатора -- красная и жёлтая кривые линии).

    Непосредственно алгоритм:
    1) Т.к. открытых ордеров пока нет (только прикрепили советник к графику) ожидаем сигнал для входа на рынок (в дальнейшем планирую добавить мгновенное открытие сделки)
    2) Определение направления текущего тренда для открытия соотв. сделки Sell/Buy
    3) При смене тренда закрытие сущестующей сделки и открытие сделки по повому тренду (противоположной предыдущей сделке)

    По моему мнению, это основной костяк работы советника. Если у кого то есть какие то предложения, с удовольствием их выслушаю.
    Данная тема создана для контроля проуесса написания советника, возможного внесения правок в алгоритм работы и для поднятия уровня знания начинающих кодеров на MQl (таких же как и я )


    QQEAlertv3.rar

    Вы не можете благодарить!

  2. #2
    Новичок Аватар для ViRaI
    Регистрация
    20.12.2011
    Сообщений
    187
    Promo (¢)
    45
    Благодарности
    Получено: 20
    Отправлено: 14
    А не проще заплотить 10--20$,и спец напишет сову.?

    Вы не можете благодарить!

  3. #3
    Banned
    Регистрация
    19.12.2011
    Адрес
    Россия
    Сообщений
    654
    Promo (¢)
    0
    Благодарности
    Получено: 49
    Отправлено: 17
    Было бы не плохо,К тем кто хорошо знает язык программирования-у меня будет много выгодных предложений! Сам как то ни бум бум в MQL никак не выбиру время для освоения! Но всё же если кто владеет навыками отписываемся будет интересно...Может основная прибыль удвоится

    Вы не можете благодарить!
    Последний раз редактировалось FestiVaL; 20.01.2012 в 10:57.

  4. #4
    Теоретик Аватар для PAZITIV
    Регистрация
    20.12.2011
    Адрес
    47°57′16.04″ с. ш. 33°25′22.28″ в. д
    Сообщений
    1,472
    Promo (¢)
    -10
    Благодарности
    Получено: 52
    Отправлено: 77
    Цитата Сообщение от ViRaI Посмотреть сообщение
    А не проще заплотить 10--20$,и спец напишет сову.?
    во-первых, нет денег
    во-вторых, так интереснее. я когда то учил делфи, т.е. логику понимаю, а вот синтаксис освоить -- для меня это что то вроде квеста

    ---------- Добавлено в 09:00 ---------- Предыдущее сообщение было размещено в 08:55 ----------

    Цитата Сообщение от FestiVaL Посмотреть сообщение
    Было бы не плохо,К тем кто хорошо знает язык программирования-у меня будет много выгодных предложений! Сам как то ни бум бум в MQL никак не выбиру время для освоения! Но всё же если кто владеет навыками отписываемся будет интересно...
    как вы считаете, я правильно расписал алгоритм?!

    Вы не можете благодарить!

  5. #5
    Новичок Аватар для ViRaI
    Регистрация
    20.12.2011
    Сообщений
    187
    Promo (¢)
    45
    Благодарности
    Получено: 20
    Отправлено: 14
    Цитата Сообщение от FestiVaL Посмотреть сообщение
    ...никак не выбиру время для освоения!
    Да если есть масса свободного времени,возможно и стоит повозится.хотя не факт ,что получится!
    А так тех задание дал сову получил.что не так поправят.БЫСТРО,ДЁШЕВО и КАЧЕСТВЕНО.(ИМХО)

    Вы не можете благодарить!

  6. #6
    Новичок Аватар для aleksunderz
    Регистрация
    10.01.2012
    Адрес
    Дергачи
    Сообщений
    197
    Promo (¢)
    120
    Благодарности
    Получено: 7
    Отправлено: 1
    У меня есть суперская идея - называется крюки Росса.
    Офигитительная вещь. Если бы ее реализовать можно было.

    Советник естественно сбацать и посмотреть как получается - на это глянуть было бы интересно

    Индикатор он всегда опаздывает и берет информацию из цены.
    Он как бы трейдера так и непускает в рынок.

    Такое чувство что ты находишься за километр от рынка.
    Индикатор берет инфу из цены и распределяет ее на период - смазывает - как кривое зеркало выходит.

    Лучше всего если строить - то использывать торговые диапазоны и волатильность.
    И еще можно включить крюки росса, ТТЕ, Слотербек и тд и тп -
    Это все есть сигналы для входа врынок.

    Это все опережающие сигналы- так как получены только из цены и иследования пиков и впадин.
    Так ты целеком в рынке - ты анализурешь не формулу, а цену, рынок.
    Тогда как скрещивание кривых - запаздывающие - следовательно имеют очень большую погрешность и низкую резултативность.

    ---------- Добавлено в 07:47 ---------- Предыдущее сообщение было размещено в 07:34 ----------

    Как программировать понятие имею, программировал на бейсике на советском компьютере и еще на турбопаскале.
    А вот в этот эмкюэль смотрю и вообще - и ни фига.
    Сложно.
    Может и правда попробывать? Может получится?

    Вы не можете благодарить!
    Последний раз редактировалось aleksunderz; 21.01.2012 в 07:39.

  7. #7
    Теоретик Аватар для PAZITIV
    Регистрация
    20.12.2011
    Адрес
    47°57′16.04″ с. ш. 33°25′22.28″ в. д
    Сообщений
    1,472
    Promo (¢)
    -10
    Благодарности
    Получено: 52
    Отправлено: 77
    Цитата Сообщение от aleksunderz Посмотреть сообщение
    У меня есть суперская идея - называется крюки Росса.
    Офигитительная вещь. Если бы ее реализовать можно было.

    Советник естественно сбацать и посмотреть как получается - на это глянуть было бы интересно

    Индикатор он всегда опаздывает и берет информацию из цены.
    Он как бы трейдера так и непускает в рынок.

    Такое чувство что ты находишься за километр от рынка.
    Индикатор берет инфу из цены и распределяет ее на период - смазывает - как кривое зеркало выходит.

    Лучше всего если строить - то использывать торговые диапазоны и волатильность.
    И еще можно включить крюки росса, ТТЕ, Слотербек и тд и тп -
    Это все есть сигналы для входа врынок.

    Это все опережающие сигналы- так как получены только из цены и иследования пиков и впадин.
    Так ты целеком в рынке - ты анализурешь не формулу, а цену, рынок.
    Тогда как скрещивание кривых - запаздывающие - следовательно имеют очень большую погрешность и низкую резултативность.

    ---------- Добавлено в 07:47 ---------- Предыдущее сообщение было размещено в 07:34 ----------

    Как программировать понятие имею, программировал на бейсике на советском компьютере и еще на турбопаскале.
    А вот в этот эмкюэль смотрю и вообще - и ни фига.
    Сложно.
    Может и правда попробывать? Может получится?
    тут просто синтаксис Си-образный. Вы для начала спокойно и как можно более качественно распишите торговую стратегию по вашим крюкам Росса Составьте блок-схему программы. А потом с чистой душой гуглите что то вроде "MQL для начинающих" или "уроки MQL". по большому счёту , тот же паскаль, только вместо "<>" ставится "!="

    ЗЫ пишите в личку, скину ссылку на сайт, откуда я сейчас начал учить)

    Вы не можете благодарить!

  8. #8
    Теоретик Аватар для PAZITIV
    Регистрация
    20.12.2011
    Адрес
    47°57′16.04″ с. ш. 33°25′22.28″ в. д
    Сообщений
    1,472
    Promo (¢)
    -10
    Благодарности
    Получено: 52
    Отправлено: 77
    Итак, наваял что то вроде советника, но как всегда возникли траблы. Поэтому написал в тему, пусть уважаемый Денис поможет
    Пока что вот так:

    Код советника

    //+------------------------------------------------------------------+
    //| SimpleProfit.mq4 |
    //| Copyright © 2012, PAZITIV |
    //| pazitiv.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2012, PAZITIV"
    #property link "pazitiv.net"


    //--- input parameters
    //настройки советника
    extern string info1 = "Настройки советника" ;
    extern double LotSize=0.1;
    extern int Avarages=3;
    extern int TakeProfit=10;
    extern int StopLoss=10;
    extern bool Buy=false; //для открытия ордера на покупку
    extern bool Sell=false; //для открытия ордера на продажу

    // настройка индикатора
    extern string info2 = "Настройки индикатора" ;
    extern int QQE_SF = 1;
    extern int QQE_RSI_Period = 14;
    extern double QQE_DARFACTOR = 4.236;
    extern int QQE_Width = 1;
    extern double QQE_Position = 0.5;
    extern bool EnableVisualAlert = true;

    double CrossUp[];
    double CrossDown[];

    static datetime alertTag = D'1980.01.01';

    //+------------------------------------------------------------------+
    //| expert initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert start function |
    //+------------------------------------------------------------------+
    int start()
    {
    int limit, i, counter;
    //double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter;
    double fasterRSInow,slowerRSInow,fasterRSIprevious,slowerRSIprevious,fasterRSIafter,slowerRSIafter;
    double Range, AvgRange;

    int counted_bars=IndicatorCounted();
    if(counted_bars<0) return(-1);

    if(counted_bars>0) counted_bars--;

    limit=Bars-counted_bars;

    for(i = 0; i <= limit; i++)
    {

    counter=i;
    Range=0;
    AvgRange=0;
    for (counter=i ;counter<=i+9;counter++)
    {
    AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
    }
    Range=AvgRange/10;

    fasterRSInow = iCustom(NULL,0,"QQEA",QQE_SF,QQE_RSI_Period,QQE_DARFACTOR,0,i);
    fasterRSIprevious = iCustom(NULL,0,"QQEA",QQE_SF,QQE_RSI_Period,QQE_DARFACTOR,0,i+1);
    fasterRSIafter = iCustom(NULL,0,"QQEA",QQE_SF,QQE_RSI_Period,QQE_DARFACTOR,0,i-1);

    slowerRSInow = iCustom(NULL,0,"QQEA",QQE_SF,QQE_RSI_Period,QQE_DARFACTOR,1,i);
    slowerRSIprevious = iCustom(NULL,0,"QQEA",QQE_SF,QQE_RSI_Period,QQE_DARFACTOR,1,i+1);
    slowerRSIafter = iCustom(NULL,0,"QQEA",QQE_SF,QQE_RSI_Period,QQE_DARFACTOR,1,i-1);


    if ((fasterRSInow > slowerRSInow) && (fasterRSIprevious < slowerRSIprevious) && (fasterRSIafter > slowerRSIafter))
    {
    CrossUp[i] = Low[i] - Range*QQE_Position;
    }
    else
    if ((fasterRSInow < slowerRSInow) && (fasterRSIprevious > slowerRSIprevious) && (fasterRSIafter < slowerRSIafter))
    {
    CrossDown[i] = High[i] + Range*QQE_Position;
    }
    }

    //визуальное оповещение о смене тренда
    if (EnableVisualAlert==true && i==1 && CrossUp[i] > CrossDown[i] && alertTag!=Time[0])
    {
    Alert("QQE Cross Trend going DOWN on ",Symbol()," ",Periodo(Period()));
    alertTag = Time[0];
    }
    if (EnableVisualAlert==true && i==1 && CrossUp[i] < CrossDown[i] && alertTag!=Time[0])
    {
    Alert("QQE Cross Trend going UP on ",Symbol()," ",Periodo(Period()));
    alertTag = Time[0];
    }



    //----

    if(!IsTradeAllowed()) return(0);

    double BuyTP=0; //тейкпрофит для покупки
    double SellTP=0; //тейкпрофит для продажи
    double BuySL=0; //стоплосс для покупки
    double SellSL=0; //стоплосс для продажи

    if(TakeProfit>0)
    {BuyTP=Ask+TakeProfit*Point;
    SellTP=Bid-TakeProfit*Point;}

    /* if(StopLoss>0)
    {BuySL=Ask-StopLoss*Point;
    SellSL=Bid+StopLoss*Point;}
    */

    //открытие ордера Buy
    while(!IsTradeAllowed()) Sleep(100);
    if (EnableVisualAlert==true && i==1 && CrossUp[i] < CrossDown[i] && alertTag!=Time[0])
    OrderSend(Symbol(),OP_BUY,LotSize,Ask,Avarages,BuySL,BuyTP," ",0,0,CLR_NONE);

    //открытие ордера Sell
    while(!IsTradeAllowed()) Sleep(100);
    if (EnableVisualAlert==true && i==1 && CrossUp[i] > CrossDown[i] && alertTag!=Time[0])
    OrderSend(Symbol(),OP_SELL,LotSize,Bid,Avarages,SellSL,SellTP," ",0,0,CLR_NONE);

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    string Periodo(int TF)
    {
    if (TF==1) { return("M1"); }
    if (TF==5) { return("M5"); }
    if (TF==15) { return("M15"); }
    if (TF==30) { return("M30"); }
    if (TF==60) { return("H1"); }
    if (TF==240) { return("H4"); }
    if (TF==1440) { return("D1"); }
    }
    [свернуть]

    Вы не можете благодарить!

  9. #9
    Новичок Аватар для aleksunderz
    Регистрация
    10.01.2012
    Адрес
    Дергачи
    Сообщений
    197
    Promo (¢)
    120
    Благодарности
    Получено: 7
    Отправлено: 1
    Круто. Для меня это прям Эверест. Кажется что я никогда на эту гору взойти так и не смогу.
    Ты здорово пограмируешь.

    Буду пробывать начинать с блок-схемы. Блин, у меня получится.
    Нужно настроится.

    Вы не можете благодарить!

  10. #10
    Теоретик Аватар для PAZITIV
    Регистрация
    20.12.2011
    Адрес
    47°57′16.04″ с. ш. 33°25′22.28″ в. д
    Сообщений
    1,472
    Promo (¢)
    -10
    Благодарности
    Получено: 52
    Отправлено: 77
    Цитата Сообщение от aleksunderz Посмотреть сообщение
    Круто. Для меня это прям Эверест. Кажется что я никогда на эту гору взойти так и не смогу.
    Ты здорово пограмируешь.

    Буду пробывать начинать с блок-схемы. Блин, у меня получится.
    Нужно настроится.
    да эт не я. это автору нидикатора огромный респект. а я только нашёл куски кода через гугл и адаптировал их под мои потребности
    Давай дерзай! С блок-схемы всё начинается. Это практически половина ТЗ. Её потом монж будет и прогеру отдать, просто объяснение расписать и всего делов))

    Вы не можете благодарить!

Страница 1 из 15 1 2 3 4 5 11 ... ПоследняяПоследняя

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •