Forex programozás Fórum Kérdések az MQL4 programozási nyelvvel kapcsolatban Miért nem látszik az indikátor vonala?

Címkézve: ,

3 bejegyzés megtekintése - 1-3 / 3
  • Szerző
    Bejegyzés
  • kocsorm
    Tag
    Bejegyzések száma: 10

    Szia Attila!
    A problémám a következő:
    Készíteni akartam egy indikátort de valami probléma van mert az indikátor vonal nem jelenik meg.
    Átnéztem már a kódot de nem értem miért nem működik ez a tök egyszerű dolog. A probléma az osztással van.
    Konkrétan:
    – ADX indikátor értékét berakom egy változóba
    – majd 100-at osztani akarom ezzel a változóval, aminek persze egy double számnak kellene kijönnie ami ábrázolható, de mégsem jelenik meg.
    Köszönettel: Mátyás

    A kód:

    //+------------------------------------------------------------------+
    //|                                                        indikátor |
    //|                                                                  |
    //|                                                                  |
    //+------------------------------------------------------------------+
    
    #property indicator_separate_window
    #property indicator_buffers 1
    #property indicator_color1 Blue
    
    extern int adxPeriod = 7;
    //---- buffers
    double Buffer_a[];
    //----
    
    int init()
      {
       SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);
       SetIndexBuffer(0, Buffer_a);
     //---- name for DataWindow and indicator subwindow label
        IndicatorShortName("indikátor");  
        return(0);
      }
    int start()
      {
        int i,counted_bars=IndicatorCounted();
        double signalVal, adxVal;
        if(Bars<=100) return(0);//ha nincs annyi bar
        i=Bars-counted_bars-1; //legrégebbi bár meghatározása amire számolni kell
    //----
     while(i>=0)      
       {
       adxVal = iADX(NULL,0,adxPeriod,PRICE_TYPICAL,MODE_MAIN,i);
       signalVal = (100/adxVal);
       Buffer_a[i]=signalVal;
       i--;
       }
       return(0);
    }
    
    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    A nullával való osztás lehetőségére mindig figyelni kell, és meg kell akadályozni!

          if (adxVal != 0) {
             signalVal = (100/adxVal);
          }
          else {
             signalVal = 0;
          }

    Ha erre kicseréled a signalVal = (100/adxVal); sort, akkor működik az indikátorod.

    kocsorm
    Tag
    Bejegyzések száma: 10

    Köszönöm.
    Így már tényleg működik.

3 bejegyzés megtekintése - 1-3 / 3
  • Be kell jelentkezni a hozzászóláshoz.