[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 182
Ho scritto un semplice indicatore. Ecco il codice:
C'è solo un buffer in esso. I valori degli indicatori sono di tipo doppio.
In Expert Advisor, ho deciso di ottenere il valore dell'indicatore e applicarlo al trade come filtro.
Qui ho scritto una semplice chiamata di funzione di questo indicatore buffer sull'ultima barra formata:
Nel tester il valore della pendenza viene restituito sbagliato:
Perché? Il tipo è corretto. Anche la chiamata è corretta. L'indicatore funziona correttamente a tutti. Ecco il log sul tester, e dal mercato attuale reale:
Perché viene restituitosempre un numero2147483647 invece del numero richiesto?
Viene restituito un valore vuoto(EMPTY_VALUE), che è 2147483647. Forse dovresti premere Ctrl+D e cercare i dati dell'indicatore stesso?
Ho scritto un semplice indicatore. Ecco il codice:
Ha solo un buffer. I valori degli indicatori sono di tipo doppio.
In Expert Advisor, ho deciso di ottenere il valore dell'indicatore e applicarlo al trade come filtro.
Qui ho scritto una semplice chiamata di funzione di questo indicatore buffer sull'ultima barra formata:
Il valore della pendenza non è corretto nel tester:
Perché? Il tipo è corretto. Anche la chiamata è corretta. L'indicatore funziona correttamente a tutti. Ecco il log sul tester, e dal mercato attuale reale:
Perché viene restituitosempre un numero2147483647 invece del numero richiesto?
Aiutatemi a trovare un bug, nessuna azione e nessun errore. Forse mi manca qualche libreria?
//+------------------------------------------------------------------+//+------------------------------------------------------------------+#import "kernel32.dll"int _lopen (string path, int of);
int _lcreat (string path, int attrib);
int _llseek (int handle, int offset, int origin);
int _lread (int handle, string buffer, int bytes);
int _lwrite (int handle, string buffer, int bytes);
int _lclose (int handle);
#importint start()
{
string text ="222222";//текст который собираемся записать или перезаписать в файлstring pach ="D:\FILE.txt";//путь куда записываем файл или перезаписываем
WriteFile("D:\FILE.txt", text);//выполнение
}
//+------------------------------------------------------------------+//| записать содержимое буфера по указанному пути |//+------------------------------------------------------------------+void WriteFile (string path, string buffer)
{
int count=StringLen(buffer); //Возвращает число символов в строке. int result;
int handle=_lopen (path,1);
if(handle<0) //если файл еще не создан то создаем
{
handle=_lcreat (path,0);
result=_lclose (handle);
}
handle=_lopen (path,1); //открываем
result=_llseek (handle,0,0); //ставим указатель
result=_lwrite (handle,buffer,count); //записываем
result=_lclose (handle); //закрываем файл
}
//+------------------------------------------------------------------+
Ho scritto un semplice indicatore. Ecco il codice:
C'è solo un buffer in esso. I valori degli indicatori sono di tipo doppio.In Expert Advisor, ho deciso di ottenere il valore dell'indicatore e applicarlo al trade come filtro.
Qui ho scritto una semplice chiamata di funzione di questo indicatore buffer sull'ultima barra formata:
Nel tester il valore della pendenza viene restituito sbagliato:Perché? Il tipo è corretto. Anche la chiamata è corretta. L'indicatore funziona correttamente a tutti. Ecco il log sul tester, e dal mercato attuale reale:
Perché viene restituitosempre un numero2147483647 invece del numero richiesto?
Ho scritto un semplice indicatore. Ecco il codice:
Ha solo un buffer. I valori degli indicatori sono di tipo doppio.In Expert Advisor, ho deciso di ottenere il valore dell'indicatore e applicarlo al trade come filtro.
Qui ho scritto una semplice chiamata di funzione di questo indicatore buffer sull'ultima barra formata:
Il valore della pendenza non è corretto nel tester:Perché? Il tipo è corretto. Anche la chiamata è corretta. L'indicatore funziona correttamente a tutti. Ecco il log sul tester, e dal mercato attuale reale:
Perché viene restituitosempre un numero2147483647 invece del numero richiesto?
Rielaborato l'indicatore
Il problema sembra essere con l'indicatore.
Hai ragione... Ma è solo il numero di barre che deve essere ricalcolato... Strano perché non c'è modo di ottenere il valore corretto in questo caso.
Se si commenta questa linea, tutto funziona bene e si corregge il calcolo dalla 0a barra:
Ma Nella variante precedente, al priming emetteva un valore adeguato. Ma il gufo non prende adeguato. Perché?
Hai ragione... Ma è solo il numero di barre da ricalcolare... Strano perché in questo caso non c'è modo di ottenere il valore corretto.
Se questa linea viene commentata, tutto funziona bene e il calcolo dalla barra 0 viene corretto:
Ma Nella variante precedente, emetteva un valore adeguato. Ma il gufo non prende adeguato. Perché?
Sembra che tu stia usando la modalità di visualizzazione per controllare
Sembra che tu stia usando la modalità di visualizzazione per controllare
Sì, e allora?
Aiutatemi a trovare un bug, nessuna azione e nessun errore. Forse mi manca qualche libreria?
Il mio sistema: MT4, Build 451.
Windows 7 Home Base.
Aiutatemi a trovare un bug, nessuna azione e nessun errore. Forse mi manca qualche libreria?
Il mio sistema: MT4, Build 451.
Windows 7 Home Base.
come scegliere il lotto più piccolo tra tutti gli scambi aperti?
int i, ot = OrdersTotal(); double min=0; int min_ticket=0; for(i=0;i<ot;i++) { if(!OrderSelect(i,SELECT_BY_POS)) continue; if(OrderType()!=OP_BUY && OrderType()!=OP_SELL) continue; if(i==0||min> OrderLots()) {min = OrderLots(); min_ticket=OrderTicket();} }