Miért nem látszik az indikátor vonala?2013-09-05T16:51:59+00:00

Radu.hu 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: 646

    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

A hozzászóláshoz jelentkezz be!

Adhatok Neked még több ingyenes tartalmat?

Értesítelek hetente megjelenő új tartalmaimról.

Hozzájárulok, hogy az adatvédelmi nyilatkozat szerint biztonságosan kezeld megadott adataimat, valamint hasznos anyagokat és egyedi ajánlatokat küldj nekem termékeiddel, szolgáltatásaiddal kapcsolatban e-mailben