Announcement

Collapse
No announcement yet.

Funzioni e Parametri

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Funzioni e Parametri

    Salve, ho un problema con una formula che ho costruito.
    Non riesco a far controllare i parametri della formula dall'edit studies.
    Mi spiego meglio, la formula sotto:

    PHP Code:
    function preMain() {
    setStudyTitle("Indicator Filter3 ")
        
    setCursorLabelName("IF",0);
        
    setDefaultBarFgColor(Color.blue,0);
        
    setPlotType(PLOTTYPE_LINE,0);
        
    setDefaultBarThickness(1,0);
        
               
    var 
    fp1 = new FunctionParameter("M1"FunctionParameter.NUMBER);
            

            
    fp1.setLowerLimit(0.1);

            
    fp1.setDefault(0.5);   
            
    var 
    fp2 = new FunctionParameter("M2"FunctionParameter.NUMBER);
            

            
    fp2.setLowerLimit(0.1);

            
    fp2.setDefault(2);     

    var 
    fp3 = new FunctionParameter("S"FunctionParameter.NUMBER);
            

            
    fp3.setLowerLimit(1);

            
    fp3.setDefault(8);           
              
        
    var 
    fp4 = new FunctionParameter("E"FunctionParameter.NUMBER);
            

            
    fp4.setLowerLimit(1);

            
    fp4.setDefault(18);           
                 



    var 
    myLibrary addLibrary"Filter_Function.efsLib" );


    function 
    main(M1,M2,S,E) {

    var 
    nFilter myLibrary.Filter();


        if  ( 
    nFilter == 1) {
        
    setDefaultBarFgColorColor.lime); 
        
    setDefaultBarBgColorColor.lime); 
        }
        if ( 
    nFilter == -1)  {
        
    setDefaultBarFgColorColor.red); 
        
    setDefaultBarBgColorColor.red); 
        }
        if ( 
    nFilter == 0)  {
        
    setDefaultBarFgColorColor.yellow); 
        
    setDefaultBarBgColorColor.yellow); 
        
        } return(
    1);

    ...utilizza una funzione da me creata e salvata nella libreria delle funzioni.
    In questa funzione ho dichiarato 4 variabili ( M1, M2, S, E ), ed ho assegnato loro dei valori. Poi in premain ho inserito queste vaiabili in var fp1 ecc per poterne cambiare i valori in edit studies.
    Però non ha nessun effetto, ossia vedo nell'edit i valori ma pur cambiandoli non incidono. Resta fisso il valore della variabile dichiarata nella funzione. Penso che sia un problema di ambiti delle variabili, ci sto sbattendo la testa non riesco a capire come fare. Spero in aiuto illuminante.

  • #2
    Re: Funzioni e Parametri

    guru73
    Quando chiami la funzione devi passare I parametri che vanno inoltre inclusi negli argomenti della funzione
    Alex


    Originally posted by guru73
    Salve, ho un problema con una formula che ho costruito.
    Non riesco a far controllare i parametri della formula dall'edit studies.
    Mi spiego meglio, la formula sotto:

    PHP Code:
    function preMain() {
    setStudyTitle("Indicator Filter3 ")
        
    setCursorLabelName("IF",0);
        
    setDefaultBarFgColor(Color.blue,0);
        
    setPlotType(PLOTTYPE_LINE,0);
        
    setDefaultBarThickness(1,0);
        
               
    var 
    fp1 = new FunctionParameter("M1"FunctionParameter.NUMBER);
            

            
    fp1.setLowerLimit(0.1);

            
    fp1.setDefault(0.5);   
            
    var 
    fp2 = new FunctionParameter("M2"FunctionParameter.NUMBER);
            

            
    fp2.setLowerLimit(0.1);

            
    fp2.setDefault(2);     

    var 
    fp3 = new FunctionParameter("S"FunctionParameter.NUMBER);
            

            
    fp3.setLowerLimit(1);

            
    fp3.setDefault(8);           
              
        
    var 
    fp4 = new FunctionParameter("E"FunctionParameter.NUMBER);
            

            
    fp4.setLowerLimit(1);

            
    fp4.setDefault(18);           
                 



    var 
    myLibrary addLibrary"Filter_Function.efsLib" );


    function 
    main(M1,M2,S,E) {

    var 
    nFilter myLibrary.Filter();


        if  ( 
    nFilter == 1) {
        
    setDefaultBarFgColorColor.lime); 
        
    setDefaultBarBgColorColor.lime); 
        }
        if ( 
    nFilter == -1)  {
        
    setDefaultBarFgColorColor.red); 
        
    setDefaultBarBgColorColor.red); 
        }
        if ( 
    nFilter == 0)  {
        
    setDefaultBarFgColorColor.yellow); 
        
    setDefaultBarBgColorColor.yellow); 
        
        } return(
    1);

    ...utilizza una funzione da me creata e salvata nella libreria delle funzioni.
    In questa funzione ho dichiarato 4 variabili ( M1, M2, S, E ), ed ho assegnato loro dei valori. Poi in premain ho inserito queste vaiabili in var fp1 ecc per poterne cambiare i valori in edit studies.
    Però non ha nessun effetto, ossia vedo nell'edit i valori ma pur cambiandoli non incidono. Resta fisso il valore della variabile dichiarata nella funzione. Penso che sia un problema di ambiti delle variabili, ci sto sbattendo la testa non riesco a capire come fare. Spero in aiuto illuminante.

    Comment


    • #3
      Re: Re: Funzioni e Parametri

      Originally posted by Alexis C. Montenegro
      guru73
      Quando chiami la funzione devi passare I parametri che vanno inoltre inclusi negli argomenti della funzione
      Alex
      ciao Alex, grazie mille per l'aiuto.
      Non sono sicuro di aver capito cosa fare. Ti spiego:
      l'indicatore da me postato include una funzione di nome "Filter()". Questa funzione l'ho creata e salvata nella libreria delle funzioni.
      In questa funzione tra le altre cose, ho 4 variabili:
      S = 8
      E = 18
      M1 = 0.5
      M2 = 2
      Vorrei poter modificare questi valori nell'edit.
      Ho provato dietro tuo suggerimento a passare i nomi delle variabili, oltre che nella funzione main(), anche in:
      var nFilter = myLibrary.Filter(M1,M2,S,E);
      Purtroppo non funziona. Ecco la domanda è, come posso usare queste variabili che fanno parte di una funzione esterna?
      Tu vedendo il mio codice, dove vedi l'errore. Lo scopo è poter modificare i valori delle variabili dall'edit studies.
      Ti ringrazio in anticipo.

      Comment


      • #4
        Re: Re: Re: Funzioni e Parametri

        guru73
        Come ti ho indicato nella mia precedente risposta I parametri che passi nella chiamata ad una funzione devono essere anche inclusi negli argomenti di quella funzione [cosi come sono ad esempio inclusi negli argomenti della funzione main]
        Per ulteriori informazioni sulle funzioni [incluso una spiegazione sugli argomenti di una funzione] vedi questo articolo nella Core JavaScript Guide che si trova nel EFS KnowledgeBase
        Alex




        Originally posted by guru73
        ciao Alex, grazie mille per l'aiuto.
        Non sono sicuro di aver capito cosa fare. Ti spiego:
        l'indicatore da me postato include una funzione di nome "Filter()". Questa funzione l'ho creata e salvata nella libreria delle funzioni.
        In questa funzione tra le altre cose, ho 4 variabili:
        S = 8
        E = 18
        M1 = 0.5
        M2 = 2
        Vorrei poter modificare questi valori nell'edit.
        Ho provato dietro tuo suggerimento a passare i nomi delle variabili, oltre che nella funzione main(), anche in:
        var nFilter = myLibrary.Filter(M1,M2,S,E);
        Purtroppo non funziona. Ecco la domanda è, come posso usare queste variabili che fanno parte di una funzione esterna?
        Tu vedendo il mio codice, dove vedi l'errore. Lo scopo è poter modificare i valori delle variabili dall'edit studies.
        Ti ringrazio in anticipo.

        Comment

        Working...
        X