[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 10

 
E un'altra domanda relativa al funzionamento della biblioteca.
Ho creato il file di libreria, l'ho compilato, tutto è andato senza errori.
Ho importato la funzione nel codice dell'indicatore, l'ho compilato e tutto è a posto.
Quando avvio l'indicatore, la funzione da importare non viene eseguita, quando uso

codice indicatore, tutto funziona. Ecco il codice della libreria.

//+------------------------------------------------------------------+
//|                                                         lib1.mq4 |
//|                                         Copyright © 2012, Fox.RM |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Fox.RM"
#property link      "http://www.metaquotes.net"
#property library
//+------------------------------------------------------------------+
//| My function                                                      |
//+------------------------------------------------------------------+
double Sredn(double ArrSr[])
{
double a=1,c,step=1/20;
for (int i=0;i<=20;i++)
{if (ArrSr[i]==0){a*=1;}else{a*=MathAbs(ArrSr[i]);}}
c=MathPow(a, step);
  return(c);
}
//+------------------------------------------------------------------+

Questa è una chiamata nel codice dell'indicatore:

#import "lib1.ex4"
    double Sredn(double& ArrSr[]);
    void SetText(string name, string name2, string text, string text2, color c, 
int size);
#import

 
Fox_RM:
Buona giornata a tutti!
Ho deciso di riscrivere il codice del mio indicatore per un Expert Advisor per tracciare
Ho deciso di cambiare il codice del mio indicatore per seguire il funzionamento dei suoi segnali.
Non ho errori durante la compilazione e funziona nello Strategy Tester senza errori.

Non so come usarlo.

Z.I. Sono sicuro che ci sono molti errori e stupidi, per favore sparate a salve.

int counted_bars=IndicatorCounted(); 

Tu stesso scrivi che hai un Expert Advisor e la funzione è per un indicatore.

Conta il numero di barre che vuoi forzatamente e non di più.


In secondo luogo, aggiungi un controllo che ci sia già stata un'apertura da parte di questo segnale o otterrai un nuovo ordine ogni tick.

In terzo luogo, controllate la funzione iCustom

 
ilunga:

Tu stesso scrivi che hai un Expert Advisor, e la funzione è per un indicatore.

Conta il numero di barre che vuoi forzatamente e non di più.

E come si calcola forzatamente?
 
Fox_RM:
Buona giornata a tutti!
Ho deciso di riscrivere il codice del mio indicatore per un Expert Advisor per tracciare
Ho deciso di cambiare il codice del mio indicatore per seguire il funzionamento dei suoi segnali.
Non ho errori durante la compilazione e funziona nello Strategy Tester senza errori.

Non so come usarlo.

Z.I. Sono sicuro che ci sono molti errori e stupidi, per favore sparate a salve.


Prezzo di apertura
if (Sredn(TP_UP)>=2.5)OrderSend(Symbol(),OP_SELL,0.1,Close[i],2,50,20);
 if (Sredn(TP_DN)>=2.0)OrderSend(Symbol(),OP_BUY,0.1,Close[i],2,50,20);
 
Fox_RM:
Come si fa a forzare un conteggio?
Solo il segnale sulla 0a barra è importante per gli Expert Advisors e l'apertura di trade, vero? Quindi, accorciare il ciclo di calcolo dal numero di barre al numero necessario per questo calcolo
 
r772ra:

Prezzo di apertura

Cioè usare questa condizione per il ricalcolo delle barre?

Ma nel mio indicatore, ad ogni tick vengono calcolati gli array TP_UP e TP_DN. Pertanto, dovremmo calcolarli prima di tutto.

 
ilunga:
Per il tuo Expert Advisor e per aprire trade, l'unica cosa che conta è il segnale sulla 0a barra, vero? Quindi, accorciare il ciclo di calcolo dal numero di barre al numero necessario per questo calcolo

Ho provato ad aprire ordini su una nuova barra utilizzando la funzione NewBar(). Se è usato per questo scopo?

Per esempio if (NewBar())i++; Qualcosa del genere.

 
ilunga:
Per il tuo Expert Advisor e l'apertura del trade conta solo il segnale sulla 0a barra, vero? Quindi accorciare il ciclo di calcolo dal numero di barre al numero necessario per questo calcolo
E non ho ancora capito bene quale sia la differenza fondamentale tra questi due calcoli per un Expert Advisor;(
 
Fox_RM:
E un'altra domanda relativa al funzionamento della biblioteca.
Ho creato il file di libreria, l'ho compilato, tutto è andato senza errori.
Ho importato la funzione nel codice dell'indicatore, l'ho compilato e tutto è a posto.
Quando avvio l'indicatore, la funzione da importare non viene eseguita, quando uso

codice indicatore, tutto funziona. Ecco il codice della libreria.

Questa è una chiamata nel codice dell'indicatore:

Forse non avete preparato correttamente l'array nell'indicatore init()? Ho capito bene - la funzione importata non ha funzionato lì?
 
TarasBY:
Forse l'array non è stato preparato correttamente nell'indicatore init()? Ho capito bene - la funzione importata non ha funzionato lì?
No, non l'ha fatto. Ho controllato, tutto sembra essere corretto. E inoltre, perché funziona correttamente quando viene usato nel programma?