[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 181

 

Ciao a tutti!


La mia domanda è di un principiante.

Ho un indicatore che visualizza dati da file esterni su un grafico. Ecco le mie domande:

1. Come si apre la finestra di dialogo standard per la selezione dei file?

2. Come aggirare la restrizione sulle cartelle da cui si possono aprire i file del codice (esperti/file)?

3. Come fare un controllo sul grafico che può essere cliccato per disabilitare lo script. La domanda principale è come fare un EA, per esempio un qualche tipo di pulsante o qualcos'altro per interagire con l'utente attraverso di esso)?


Grazie!

 

Spiega al nerd qual è l'errore!

Sto facendo un semplice script su Finam demo per mostrare il prezzo di Alert(BId);

Tutto funziona, ma per qualche motivo il prezzo viene visualizzato con 4 decimali, anche se le quotazioni sono in 5 decimali per EURUSD. Anche l'IMA è calcolato con 4 decimali e non 5.

Cosa sto sbagliando, per favore consigliatemi????

 
Onesto:

Spiega al nerd qual è l'errore!

Sto facendo un semplice script su Finam demo per mostrare il prezzo di Alert(BId);

Tutto funziona, ma per qualche motivo il prezzo viene visualizzato con 4 decimali, anche se le quotazioni sono in 5 decimali per EURUSD. Anche l'IMA è calcolato con 4 decimali e non 5.

Per favore consigliatemi cosa sto sbagliando ????

State facendo tutto bene, ma il terminale stamperà 4 cifre decimali, convertite il doppio in stringa prima di stampare con il numero corretto di cifre decimali.

Alert(DoubleToStr(Bid,Digits));

 
sanderz:

Ciao a tutti!


La mia domanda è di un principiante.

Ho un indicatore che visualizza dati da file esterni su un grafico. Ecco le mie domande:

1. Come si apre la finestra di dialogo standard per la selezione dei file?

2. Come aggirare la restrizione sulle cartelle da cui si possono aprire i file del codice (esperti/file)?

3. Come fare un controllo sul grafico che può essere cliccato per disabilitare lo script. La domanda principale è come fare un EA, per esempio un qualche tipo di pulsante o qualcos'altro per interagire con l'utente attraverso di esso)?


Grazie!

1-2.Standard è cosa? Anche se in ogni caso, per le prime due domande, sarà necessario utilizzare WinAPI e/o DLL esterne.

3. Direttamente dallo script per fare un elemento grafico nel ciclo per tracciare le sue coordinate e quando lo trascini, lo script si mette in pausa o si scarica.

Il modo più semplice per farlo è guardare il codice sorgente, ci sono molti espedienti visivi nel codice.

 
Cari membri del forum, potete aiutarmi ad emettere una tabella di tutte le transazioni da Quicksilver a excel in modo che sia aggiornata online e che io possa cambiare il numero di righe visualizzate. Ho provato ma l'intera tabella viene visualizzata e non aggiornata.
 
splxgf:

1-2. qual è quello standard? Ma in ogni caso, le prime due domande richiederanno WinAPI e/o DLL esterne.

3. Direttamente dallo script per fare un elemento grafico nel ciclo per tracciare le sue coordinate e quando lo trascini, lo script si mette in pausa o si scarica.

Il modo più semplice per farlo è guardare il codice sorgente, ci sono molti espedienti visivi nel codice.

Grazie.
 
splxgf:

State facendo tutto correttamente, ma il terminale emette 4 cifre decimali, convertite il doppio in una stringa prima di emetterlo con il giusto numero di cifre.

Alert(DoubleToStr(Bid,Digits));


Grazie, ora capisco.

Quando si calcola nel corpo di Expert Advisor, i dati hanno 5 o 4 cifre?

 
Onesto:


Grazie, ora capisco.

E quando si calcola nel corpo dell'EA, i dati vanno con 5 o con 4?

I calcoli vengono eseguiti con il numero normale di cifre, che può essere controllato con Alert(Bid*100000);
 

Caro, ho di nuovo una domanda:

doppio hc=(iHigh(NULL,0,1)-iClose(NULL,0,1));
doppio cl=(iClose(NULL,0,1)-iLow(NULL,0,1));

se((iClose(NULL,0,1)<iOpen(NULL,0,1))&&(hc>cl))

pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,Ask+100*Point,"",0,0,0,CLR_NONE);


C'è un problema: le posizioni vengono aperte 17-40 volte ogni 1 minuto, anche se le provo su grafici a 15 minuti. E l'ordine dovrebbe aprirsi non più di una volta ogni 15 minuti. Solo allora la condizione che la chiusura della candela precedente sia inferiore a quella aperta è soddisfatta.

Perché è così?

 
NaVolne:

Caro, ho di nuovo una domanda:

se((iClose(NULL,15,1)<iOpen(NULL,15,1))&&(hc>cl))

pre12=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,Ask+100*Point,"",0,0,0,CLR_NONE);


C'è un problema: le posizioni vengono aperte 17-40 volte ogni 1 minuto, anche se le provo su grafici a 15 minuti. E presumo che un ordine non dovrebbe aprirsi più frequentemente di una volta ogni 15 minuti. Solo allora la condizione che la chiusura della candela precedente sia inferiore a quella aperta è soddisfatta.

Perché è così?


Presumo che l'ordine debba essere aperto una volta ogni 15 minuti, all'inizio di

nell'area di dichiarazione delle variabili

double OpenBar=0; 

 

int start()
   {
    //Проверка на начало нового бара
    double CurOpenBar=iOpen(NULL,PERIOD_M15,0);  
    if (OpenBar==CurOpenBar) {return;} else {OpenBar=CurOpenBar;}
    //ваш код
   }


qualcosa del genere...

Ma la tua condizione è soddisfatta ad ogni tick, quindi l'ordine si apre ad ogni tick...