Результаты опроса:

Голосовавшие
0. Вы ещё не голосовали в этом опросе
  • 0 0%
Форум трейдеров » Торговые роботы, советники, индикаторы » Автотрейдинг. Вопросы новичков
+ Подписаться
Страница 26 из 33 ПерваяПервая ... 162425262728 ... ПоследняяПоследняя
  1. 30
    Комментарии
    0
    Темы
    34
    Репутация Pro
     
    Новичок

    2 Медалей
    Пишу индикатор, все нормально, но вот в этой строчке почему-то выскакивает ошибка. Скобки поле iBulls не нравится. Подскажите что в ней должно быть написано.

    Buffer[i]=iBulls(NULL,0,BullsPeriod,i)+N;
  2. 182
    Комментарии
    8
    Темы
    159
    Репутация Pro
    Аватар для cmillion  
    В начале пути

    3 Медалей
    Цитата Сообщение от Lord Sam Посмотреть сообщение
    Пишу индикатор, все нормально, но вот в этой строчке почему-то выскакивает ошибка. Скобки поле iBulls не нравится. Подскажите что в ней должно быть написано.

    Buffer[i]=iBulls(NULL,0,BullsPeriod,i)+N;
    double iBullsPower( string symbol, int timeframe, int period, int applied_price, int shift)
    Расчет индикатора Bulls Power.
    Параметры:
    symbol - Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.
    timeframe - Период. Может быть одним из периодов графика. 0 означает период текущего графика.
    period - Период усреднения для вычисления индикатора.
    applied_price - Используемая цена. Может быть любой из ценовых констант.
    shift - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).

    Пример:
    double val=iBullsPower(NULL, 0, 13,PRICE_CLOSE,0);
  3. 30
    Комментарии
    0
    Темы
    34
    Репутация Pro
     
    Новичок

    2 Медалей
    Спасибо. Никак не могу найти базу со всеми используемыми индикаторами с инструкциями на русском языке. Поэтому приходится спрашивать много. Есть такая?
  4. 182
    Комментарии
    8
    Темы
    159
    Репутация Pro
    Аватар для cmillion  
    В начале пути

    3 Медалей
    Цитата Сообщение от Lord Sam Посмотреть сообщение
    Спасибо. Никак не могу найти базу со всеми используемыми индикаторами с инструкциями на русском языке. Поэтому приходится спрашивать много. Есть такая?
    Находясь в Метаедиторе выделите любую функцию, например, iBullsPower и нажмите F1, спавка покажет Вам информацию именно по данной функции. Если нажмете F1, не выделив ничего, то откроется общая справка по функциям.
  5. 30
    Комментарии
    0
    Темы
    34
    Репутация Pro
     
    Новичок

    2 Медалей
    Индюк заработал. Все нормально. Справка тоже показывается, только на английском все.
  6. 182
    Комментарии
    8
    Темы
    159
    Репутация Pro
    Аватар для cmillion  
    В начале пути

    3 Медалей
    Цитата Сообщение от Lord Sam Посмотреть сообщение
    Индюк заработал. Все нормально. Справка тоже показывается, только на английском все.
    В настройках измените язык и перезапустите MetaEditor
  7. 501
    Комментарии
    12
    Темы
    273
    Репутация Pro
     
    В начале пути

    5 Медалей
    Написал простой индикатор. Указывает стрелочкой на фрактал из трех свечей. Но указывать начинает когда комбинация еще не завершена (как на рисунке. Комбинация не завершена, а последние две стрелки уже есть). Скажите что нужно добавит в код чтобы стрелки появлялись только после полного формирования фигуры, т.е. в начале следующей свечи?
     
    Вложения Вложения
  8. 182
    Комментарии
    8
    Темы
    159
    Репутация Pro
    Аватар для cmillion  
    В начале пути

    3 Медалей
    Цитата Сообщение от kanupa Посмотреть сообщение
    Написал простой индикатор. Указывает стрелочкой на фрактал из трех свечей. Но указывать начинает когда комбинация еще не завершена (как на рисунке. Комбинация не завершена, а последние две стрелки уже есть). Скажите что нужно добавит в код чтобы стрелки появлялись только после полного формирования фигуры, т.е. в начале следующей свечи?
    PHP код:
        if (<2i=2;
        while(
    i>=2
  9. 501
    Комментарии
    12
    Темы
    273
    Репутация Pro
     
    В начале пути

    5 Медалей
    Цитата Сообщение от cmillion Посмотреть сообщение
    PHP код:
        if (<2i=2;
        while(
    i>=2
    Спасибо.:thumbsup_002:
  10. 107
    Комментарии
    0
    Темы
    107
    Репутация Pro
    Аватар для religare777  
    В начале пути

    2 Медалей
    Добрый день!
    Нашел интересный индикатор, выдающий график баланса на экран.
    Если нет закрытых сделок, выдает сообщение:
    incorrect start position 0 for ArraySort function
    И обнуляет результаты подсчетов, если добавить на счет дополнительные средства. Помогите, пожалуйста, найти ошибку и доработать индикатор. Гораздо удобнее график баланса смотреть сразу на экране.

    PHP код:
    //+------------------------------------------------------------------+
    //|                           iBalans.mq4                            |
    //+------------------------------------------------------------------+
    #property  link      ""
    //---- indicator settings
    #property  indicator_separate_window
    #property  indicator_buffers 3
    #property  indicator_color1  Green
    #property  indicator_color2  Gold
    #property  indicator_width1  2
    #property  indicator_width2  2
    //---- indicator parameters
    //extern int Days=30;
    bool Show_info=true;
    //---- indicator buffers
    double     iB[];
    double     iS[];
    double     iT[];
    //---- indicator var
    int wh,Days;
    datetime prevtime;
    double prevbalansmidlevelminlevelmaxlevel;
    #define names "График баланса"
    //+------------------------------------------------------------------+
    int init()
    {
       
    SetIndexBuffer(0,iB);
       
    SetIndexBuffer(1,iS);
       
    SetIndexBuffer(2,iT);
       
    SetIndexStyle(0,DRAW_LINE);
       
    SetIndexStyle(1,DRAW_LINE);
       
    SetIndexStyle(2,DRAW_NONE);
       
    IndicatorDigits(2);
       
    IndicatorShortName(names); // IndicatorShortName(names+"Дней: "+Days);
       
    SetIndexLabel(0,""); //Total balans
       
    SetIndexLabel(1,NULL);
       
    SetIndexLabel(2,NULL);
    //----
       
    OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
       
    Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1);
       
    //----   
       
    prevbalans=0;
       
    midlevel=0;
       
    minlevel=0;
       
    maxlevel=0;
       
    //if(Days<0) Days=0;
       
    return(0);
    }
    //+------------------------------------------------------------------+
    int start()
    {
       
    int ij=0pt=0lt=0st=0spt=0slt=0;
       
    int htm[][2];
       
    color xxx;
       
    string yyy,yy2;
       
    double уу1,potenzial;
       
    double cpmnlmxl;
       
    double sb=0.0gp=0.0gl=0.0sgp=0.0sgl=0.0;
       
    datetime now=iTime(NULL,0,0);
       
       
    OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
       
    Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1);
       
       if(
    now!=prevtime)
       {
          
    prevtime=now;
          
    prevbalans=0;
       }
       
    double sbalans=AccountBalance();
       if(
    prevbalans==sbalans)return(0);
       
    prevbalans=sbalans;
       
    datetime stday=iTime(Symbol(), PERIOD_D1,0)-Days*PERIOD_D1*60;
    //----
       
    OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
       
    Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1);
       if(
    Days==0Days=1;
    //--------------   
       
    int oht=OrdersHistoryTotal();
       
    ArrayResize(htm,oht);
       for(
    i=0i<ohti++)
          if(
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
             if(
    OrderType()<=OP_SELL && (OrderCloseTime()>stday || Days==0))
             {
                
    htm[j][0]=OrderCloseTime();
                
    htm[j][1]=OrderTicket();
                
    j++;
             }
       
    ArrayResize(htm,j);
       
    ArraySort(htm);
       
    mxl=sbalans;
       
    mnl=sbalans;
       
    iB[0]=sbalans;
       for(
    i=1i<=ji++)
       {
          
    OrderSelect(htm[j-i][1],SELECT_BY_TICKET);
          
    cp=OrderProfit()+OrderCommission()+OrderSwap();
          
    iB[i]=iB[i-1]-cp;
          if(
    cp>=0) { pt++; gp+=cp;} else { lt++; gl+=-cp;}
          if(
    iB[i]>mxlmxl=iB[i];
          if(
    iB[i]<mnlmnl=iB[i];
          if(
    OrderSymbol()==Symbol())
          {
             
    iS[i-1]=iB[i-1];
             
    iS[i]=iB[i];
             
    sb+=cp;
             if(
    cp>=0) { spt++; sgp+=cp;} else { slt++; sgl+=-cp;}
             
    st++;
          } else 
    iS[i]=EMPTY_VALUE;
       }
       
    sbalans=iB[i-1];   
       if(
    sbalans!=midlevel)
       {
          
    midlevel=sbalans;
          
    SetLevelValue(0,midlevel);
       }
       if(
    mxl!=maxlevel)
       {
          
    maxlevel=MathMax(mxl,midlevel);
          
    SetLevelValue(1,maxlevel);
          
    iT[0]=maxlevel+0.1*(maxlevel-minlevel);
       }
       if(
    mnl!=minlevel)
       {
          
    minlevel=MathMin(mnl,midlevel);
          
    SetLevelValue(2,minlevel);
          
    iT[1]=minlevel-0.1*(maxlevel-minlevel);
       }
       if(
    gp-gl>0) {xxx=Limeyyy="Прибыль "yy2="% роста  "уу1=(gp-gl)*100/(AccountBalance()-gp+gl); potenzial=MathPow((уу1/100+1.0),(365.0/Days))*(AccountBalance()-gp+gl);}
       if((
    gp-gl)==||(gl-gp)==0) {xxx=Blueyyy="Прибыль "yy2="% роста  "уу1=0potenzial=MathPow((уу1/100+1.0),(365.0/Days))*(AccountBalance()-gp+gl);}
       if(
    gp-gl<0) {xxx=Redyyy="Убытки "yy2="% убытка  "уу1=(gp-gl)*100/(AccountBalance()+gp-gl); potenzial=MathPow((уу1/100+1.0),(365.0/Days))*(AccountBalance()+gp-gl);}
       
       
    //----
       
    if(!Show_info) return(0);
       
    wh=WindowFind(names); // wh=WindowFind(names+"Дней: "+Days);
       
    show(0Lime"Баланс "+DoubleToStr(AccountBalance(),2)+". Дней: "+Days);
       
    show(1xxxyyy+DoubleToStr(gp-gl,2));
       
    show(2xxxyy2+DoubleToStr(уу1,2));
       
    show(3xxx"Потенциал "+DoubleToStr(potenzial/AccountBalance(),2)+" раз/год");
       
    show(4Lime"_______________________");
       
    show(5Gold"Профитных сделок "+pt);
       
    show(6Red"Убыточных сделок "+lt);
       
    show(7Lime"Всего сделок "+j);
       
       return(
    0);
    }
    //+------------------------------------------------------------------+ 
    void show(int linecolor colstring str)
    {
       
    string sobj=names+line;
       
    int cw=ObjectFind(sobj);
       if(
    cw!=wh)
       {
          if(
    cw>=0ObjectDelete(sobj);
          
    ObjectCreate(sobj,OBJ_LABEL,wh,0,0);
          
    ObjectSet(sobj,OBJPROP_CORNER,0);
          
    ObjectSet(sobj,OBJPROP_XDISTANCE,3);
          
    ObjectSet(sobj,OBJPROP_YDISTANCE,25+line*12);
       }
       
    ObjectSetText(sobj,str,8,"",col);
    }
    //+------------------------------------------------------------------+ 
    int deinit()
    {
       for(
    int i=0i<=5i++) ObjectDelete(names+i);
       return(
    0);
    }
    //+------------------------------------------------------------------+ 
    Заранее благодарю!

    С наступающим Новым годом!
    Всем профита!

    Александр

    P.S. Нашел частично решение проблемы.
    Заменил ArraySort(htm);
    на if(htm[j][0]!=0 && htm[j][1]!=0) ArraySort(htm);
    После этого ошибка сортировки не повторяется.

Вверх
РегистрацияX

чтобы писать, читать, комментировать