Címkézve: 

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

    Szia Radu!

    Most tanulom az MQL 4-ben Expert Advisor-ok írását. Írtam egy EA-t amely a legutóbbi 9 gyertya árfolyamértéke közül a legmagasabbat számolja ki, és írja a teszter ablak napló fülébe. A gondom az, hogy a program kiszámolja ugyan a legnagyobb High értéket, de abból levágja a tizedesjegyeket és csak az egész értéket adja vissza. Például ha a 9 gyertya legnagyobb High értéke 76,54 akkor az EA 76-t ad vissza eredményként nem pedig a pontos értéket. Mit rontok el? Lehet, hogy a MetaTrader-emet kellene valahol beállítanom?

    Íme az EA:

    //+------------------------------------------------------------------+
    //|                                                  legmagasabb.mq4 |
    //|                        Copyright 2013, MetaQuotes Software Corp. |
    //|                                        http://www.metaquotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2013, MetaQuotes Software Corp."
    #property link      "http://www.metaquotes.net"
    
    
    
    int legmagasabb = 0;
    
    
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
    //----
    
    
       legmagasabb = iHigh(Symbol(),0,iHighest(Symbol(),0,MODE_HIGH,9));
       Print (legmagasabb);
    
     
       
    //----
       return(0);
      }
    //+------------------------------------------------------------------+

    Köszönettel:
    Gergő

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Használj double -t a legmagasabb változó esetében, ne integert. Utóbbi csak egész számokra használható, ezért vágja le a törtrészt a Metatrader.

    Ferex17
    Tag
    Bejegyzések száma: 2

    Köszönöm, így már jól működik. Bocsánat a triviális kérdésért, még nagyon az elején járok. :)

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