Problema nel far funzionare le variabili globali

 

Publi

Problema nel far funzionare le variabili globali

 

Publi

Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 10 di 13

Discussione: Problema nel far funzionare le variabili globali

  1. #1
    1 Attachment (s) Sto usando le variabili globali per memorizzare i dati tra le sessioni del terminale.

    Tutto sembra a posto. I miei GV sono salvati, richiamati e aggiornati esattamente come li voglio e posso vedere che stanno scrivendo sul file Globals (gvariables.dat)

    Tuttavia, quando riavvio il terminale, il file delle variabili globali viene attivato con la perdita dei dati salvati.

    Ho confermato che non è il mio codice che sta facendo questo assicurandosi che il mio EA non sia cario all'avvio.


    Ho allegato un dump dello schermo per mostrare ciò che vedo in explorer.

    C'è un guru là fuori che può aiutarmi?


  2. #2
    hey dc ...... non dovrebbe importare se tu spegni la piattaforma, il computer o l'ea ..... le variabili globali dovrebbero stare come l'ultimo set ...... o almeno il mio fare ... Sto usando la versione di ibfx non di ava ..... non penserei che sarebbe importante però ...... si chiariscono se si spegne l'EA ma non la piattaforma ....... h

  3. #3

    Citazione Originariamente Scritto da ;
    chiariscono se si spegne l'EA ma non la piattaforma ....... h
    No. Il file viene salvato correttamente quando il terminale è chiuso. Il problema si verifica all'avvio del terminale. Mi sta facendo impazzire

  4. #4

    Citazione Originariamente Scritto da ;
    o almeno il mio fare .... sto usando la versione di ibfx non di ava ..... non penserei che sarebbe importante
    Ho lo stesso comportamento su alpari.

  5. #5
    DC, dall'idea del muro, guarderei due cose. Il primo è le variabili nel posto giusto all'interno del codice. devono essere inizializzati se non vengono cancellati. L'altra cosa sarebbe cercare una cancellazione globale da qualche parte, questo potrebbe essere all'interno di un indice grafico. Puoi anche cambiare il nome del file e vedere se funziona. in bocca al lupo

  6. #6
    questo è un esempio di come lo faccio ...... potrebbero esserci metodi migliori ... è da un EA che non mi ha mai deluso .... se il grafico è chiuso, lo spegnimento del terminale o il computer è diventato off accidentalmente o altrimenti ...... i globals rimangono intatti ...... h/---/--- Codice inserito if (SymProfit (simbolo) gt; maxprofit # 91; i # 93; ) {maxprofit # 91; i # 93; = SymProfit (simbolo);} else {maxprofit # 91; i # 93; = maxprofit # 91; i # 93 ;;} if (SymProfit (simbolo) lt; maxloss # 91; i # 93 {maxloss # 91; i # 93; = SymProfit (simbolo);} else {maxloss # 91; i # 93; = maxloss # 91; i # 93 ;;} Display (maxprofitlabel simbolo i, orizzontale 900, verticale-30); ObjectSetText (maxprofitlabel simbolo i, profitto massimo, 12, Verdana, blu); Display (symmaxprofit simbolo i, orizzontale 900, verticale (i * 26)); ObjectSetText (symmaxprofit symbol i, DoubleToStr (GlobalVariableGet (symbol maxprofit), 2), 12, Verdana, Blue); Display (maxlosslabel simbolo i, orizzontale 1000, verticale-30); ObjectSetText (maxlosslabel symbol i, Max Loss, 12, Verdana, Blue); Display (symmaxloss simbolo i, orizzontale 1000, verticale (i * 26)); ObjectSetText (symmaxloss symbol i, DoubleToStr (GlobalVariableGet (symbol maxloss), 2), 12, Verdana, Blue); if (maxprofit # 91; i # 93; gt; GlobalVariableGet (symbol maxprofit)) {GlobalVariableSet (symbol maxprofit, maxprofit # 91; i # 93;} if (maxloss # 91; i # 93; lt; GlobalVariableGet (symbol maxloss)) {GlobalVariableSet (symbol maxloss, maxloss # 91; i # 93;}} if (AccountMargin () gt; GlobalVariableGet (maxmargin)) {GlobalVariableSet (maxmargin, AccountMargin ());} if ( AccountMargin () lt; GlobalVariableGet (minmargin)) {GlobalVariableSet (minmargin, AccountMargin ());} if (AccountFreeMargin () gt; GlobalVariableGet (maxfreemargin)) {GlobalVariableSet (maxfreemargin, AccountFreeMargin ());} if (AccountFreeMargin () lt ; GlobalVariableGet (minfreemargin)) {GlobalVariableSet (minfreemargin, AccountFreeMargin ());} if (AccountProfit () gt; GlobalVariableGet (maxaccprofit)) {GlobalVariableSet (maxaccprofit, AccountProfit ());} if (AccountProfit () lt; GlobalVariableGet (minaccprofit )) {GlobalVariableSet (minaccprofit, AccountProfit ());} if (AccountEquity () gt; GlobalVariableGet (maxaccequity)) {GlobalVariableSet (maxaccequity, AccountEquity ());} Display (maxmarginlabel, orizzontale 1100, verticale-30); ObjectSetText (maxmarginlabel, Max Margin, 12, Verdana, Blue); Display (maxmarginamount, orizzontale 1100, verticale 20); ObjectSetText (maxmarginamount, DoubleToStr (GlobalVariableGet (maxmargin), 2), 12, Verdana, Blue);

  7. #7

    Citazione Originariamente Scritto da ;
    L'altra cosa sarebbe cercare una cancellazione globale da qualche parte, questo potrebbe essere all'interno di un indice grafico.
    Grazie mille. Ho trovato il problema. C'era un indio che usa GlobalVariablesDeleteAll (). La cosa strana era che stava usando un parametro parefix che avrebbe dovuto limitare ciò che stava cancellando: int GlobalVariablesDeleteAll (string prefix_name = NULL) Elimina le variabili globali. Se il prefisso del nome non è specifio, tutte le variabili globali verranno eliminate. Altrimenti, verranno eliminate solo quelle variabili, i cui nomi iniziano con il prefisso specifio. La funzione restituisce il conteggio delle variabili eliminate.

  8. #8
    sembra che stia passando una variabile stringa vuota, quindi elimina tutti i globals.

  9. #9

    Citazione Originariamente Scritto da ;
    sembra che stia passando una variabile stringa vuota, quindi elimina tutti i globals.
    Questo avrebbe senso. Questa è la riga offendente nell'indior che si trova su 26 grafici GlobalVariablesDeleteAll (UniqueID Symbol ()); Fa parte di init (). UniqueID è un extern Nel mio EA, sto usando un prefisso completamente diverso

  10. #10

    Citazione Originariamente Scritto da ;
    Questo avrebbe senso. Questa è la riga offendente nell'indior che si trova su 26 grafici GlobalVariablesDeleteAll (UniqueID Symbol ()); Fa parte di init (). UniqueID è un extern Nel mio EA, sto usando un prefisso completamente diverso
    anche se UniqueID è un simbolo vuoto dovrebbe comunque restituire un valore, e quindi dovrebbe risolversi a SOMETHING almeno e non un valore vuoto passato all'eliminazione globale. giusto per scoprire quale potrebbe essere l'accordo, potrebbe valere la pena di riversare uniqueid symbol () in una variabile stringa separata e quindi stampare questa variabile sul journal o sullo schermo per vedere a cosa si sta risolvendo. potrebbe rivelare qualche inaspettata stranezza di mt4 ... qualcosa del genere, forse symbol () non ha ancora un valore quando è all'interno della funzione init anche se dovrebbe.

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Il sito di forexmad utilizza cookie
Il sito di forexmad utilizza cookie, alcuni dei quali già installati. Per avere maggiori informazioni sui nostri cookie ti preghiamo di cliccare qui. Ti preghiamo di cliccare sul bottone a destra per accettare i nostri cookie. Se continui a navigare sul sito di forexmad assumeremo che sei d'accordo ad utilizzarli.