[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 398

 
alk:

Per favore consigliatemi cosa c'è di sbagliato nel codice. Il robot dovrebbe chiudere un ordine di vendita, se non c'è, dovrebbe comprare. Appare l'errore 4105, che cerco di gestire, ma non c'è risultato. Forse ci sono altri modi per elaborarlo?


Sostituire

for(cnt=OrdersTotal();cnt>=0;cnt--)

a

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)
 
Buona giornata a voi, cari esperti, per favore aiutatemi... Ho bisogno di: sulla base dell'indicatore i-Regr (allegato) scrivere un blocco di programma, che sia in grado di determinare la larghezza del canale in punti con una periodicità di 1 volta al minuto e visualizzare questo numero sul grafico. Grazie in anticipo!
File:
i-regr_1.mq4  5 kb
 
magogy:
Buongiorno, cari esperti, per favore aiutatemi... Ho bisogno di: sulla base dell'indicatore i-Regr (allegato) scrivere un blocco di programma, che sia in grado di determinare la larghezza del canale in punti con una periodicità di 1 volta al minuto e visualizzare questo numero sul grafico. Grazie in anticipo!

Penso che con questo compito è meglio applicare al servizio
 
magogy:
Buona giornata a voi, cari esperti, per favore aiutatemi... Ho bisogno di: sulla base dell'indicatore i-Regr (allegato) scrivere un blocco di programma, che sia in grado di determinare la larghezza del canale in punti con una periodicità di 1 volta al minuto e visualizzare questo numero sul grafico. Grazie in anticipo!
 datetime Time_=0; // объявить вверху, в глобальных переменных

 if(Time[0]!=Time_){Alert(NormalizeDouble(sqh[0]-sql[0],4));Time_=Time[0];} //добавить внижней части кода, перед return-ом
 
KONDOR:

Grazie mille per il suggerimento!

Ci sono alcune sottigliezze. L'informazione viene visualizzata come 0,0026, che corrisponde a 26 punti. Ho cambiato la linea di fondo e ora appare così:

if(Time[0]!=Time_){Alert(NormalizeDouble(sqh[0]*10000-sql[0]*10000,4));Time_=Time[0];}

L'output è ora mostrato come 25.6809

Per favore consigliate come arrotondare programmaticamente questo numero per visualizzare le informazioni in punti interi invece che in frazioni.

Saluti magogy

 
magogy:

Potete per favore dirmi come arrotondare programmaticamente questo numero in modo che l'informazione sia visualizzata come un punto intero e non come un numero frazionario.

Saluti magogy

вместо 4, поставить 0, т.е. точность выводимого значения - ноль знаков после запятой
Alert(NormalizeDouble(sqh[0]*10000-sql[0]*10000,4))
 
KONDOR:


heh... quanto sia semplice e ovvio per un professionista e quanto sia spaventoso e incomprensibile per un principiante...

grazie mille per il vostro aiuto!

 

Per favore, ditemi cosa c'è che non va. Nello script dichiaro importato e chiamo la funzione:

#import "PendingDlg.dll"
int  ShowPendingDlg(int& nbar,int& sltp);

...

int    nbar=3,sltp=10;
//--- покажем диалог
if(!ShowPendingDlg(nbar,sltp)) return(1);

Ho provato a ottenere il valore per riferimento e per puntatore nella DLL (in C++). Se per riferimento non funziona, nel caso per puntatore ottengo puntatori con valore zero. Il codice è in DLL:

__declspec(dllexport) int __stdcall ShowPendingDlg(int *nbar,int *sltp) { ... }

Grazie.

 
apm:

Per favore, ditemi cosa c'è che non va. Nello script dichiaro importato e chiamo la funzione:

Ho provato a ottenere il valore per riferimento e per puntatore nella DLL (in C++). Se per riferimento non funziona, nel caso per puntatore ottengo puntatori con valore zero. Il codice è in DLL:

Grazie.

MQL4 per riferimento e per puntatore funziona solo con gli array e le stringhe (anche gli array).
 
Zhunko:
MQL4 per riferimento e puntatore funziona solo con gli array e le stringhe (anche gli array).
Grazie! Ho capito tutto ora, buon fine settimana gentile uomo)