Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 240
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
1) - Questa parte apre il file 11112222.txt per leggere i dati da esso:
//=================================BUY=========================================
int handle2 = FileOpen("11112222.txt", FILE_CSV|FILE_READ, ";");//код открывает файл для чтения
2) - Poi viene la condizione se handle2>0
if(handle2>0) // если в файле больше 0, то есть 1, то открывать BUY
{
3) - Questa è la parte che non capisco:
Print(FileReadString(handle2));
4) - Questa parte chiude il file:
FileClose(handle2); // закрытие текстового файла
5) - Poiché la condizione handle2>0 è soddisfatta, cioè il file 11112222.txt contiene 1, viene aperto un ordine di acquisto:
//ОТКРЫТИЕ ОРДЕРА НА ПОКУПКУ
if(OrdersTotal() == 0) // если нет открытых ордеров то открывать ордер на покупку
{
OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, 0, 0); // первым указывается ЛОСЬ, вторым ПРОФИТ
FileClose(handle2); // закрытие текстового файла
}
else
Print("NE USPESHNO!!!");
FileClose(handle2); // закрытие текстового файла
}
//=================================конец кода BUY=========================================
1) Apre il file, ma non legge il suo contenuto.
2) L'handle del file è SEMPRE maggiore di zero. Di conseguenza, la condizione sarà sempre valida se il file esiste, indipendentemente dal suo contenuto.
3) Questo è esattamente la lettura del contenuto del file. Anche se non capisco perché si fa la lettura della stringa, se il numero deve essere letto... Ma comunque può essere un altro problema. Ora la cosa principale è descrivere la sequenza delle azioni.
4) Naturalmente, il file deve essere chiuso e si chiude.
E solo la clausola successiva ha bisogno di essere condizionata a seconda di ciò che si legge nella clausola 3, ma non la seconda clausola.
1) apre un file, ma non ne legge il contenuto.
2) Un handle di file è SEMPRE più grande di zero. Di conseguenza, la condizione sarà sempre valida se il file esiste, indipendentemente dal suo contenuto.
3) Questo è esattamente la lettura del contenuto del file. Ma non capisco perché si legge una stringa, se si deve leggere un numero... Ma ancora può riferirsi ad un altro problema. Ora la cosa principale è descrivere la sequenza delle azioni.
4) Il file deve essere chiuso, ovviamente, e si chiude.
E solo la prossima clausola dovrebbe essere condizionata a seconda di ciò che si legge nella clausola 3, ma non la seconda clausola.
No... INVALID_HANDLE ha valore -1.
È allora che ottiene un errore di apertura del file, poi riceverà un segnale di vendita...
Altre costanti
Costanti speciali usate per indicare lo stato di parametri e variabili. Può avere i seguenti valori:
Costante
Descrizione
Valore
NULL
Null di qualsiasi tipo. Indica anche lo stato di stringa vuota
0
VUOTO
Indica lo stato vuoto del parametro
-1
VUOTO_VALORE
Valore vuoto nel buffer dell'indicatore
2147483647 (0x7FFFFFFFF)
CLR_NONE, clrNONE
Nessun colore. Valore predefinito, puntatore al valore vuoto. Usato in indicatori personalizzati
-1
CARTE_MAX
Numero massimo possibile di grafici aperti simultaneamente nel terminale
100
INVALID_HANDLE
Maniglia sbagliata
-1
IS_DEBUG_MODE
Segno di un programma mq5 in modalità debug
in modalità debug non è uguale a zero, altrimenti 0
IS_PROFILE_MODE
Segno di un programma mq5 nel modo di profiling
in modalità di profilazione non è uguale a zero, altrimenti è 0
INTERO_ARRAY
Indica il numero di elementi rimanenti fino alla fine dell'array, cioè l'intero array sarà processato
0
WRONG_VALUE
Una costante può essere implicitamente lanciata a qualsiasi tipo enum
-1
Non ho visto questo thread, quindi ne ho creato uno nuovo. si prega di guardarehttps://www.mql5.com/ru/forum/206126
1) apre un file, ma non ne legge il contenuto.
2) Un handle di file è SEMPRE maggiore di zero. Corrispondentemente, la condizione sarà sempre valida se il file esiste, indipendentemente dal suo contenuto.
3) Questo è esattamente la lettura del contenuto del file. Ma non capisco perché si legge una stringa, se si deve leggere un numero... Ma ancora può riferirsi ad un altro problema. Ora la cosa principale è descrivere la sequenza delle azioni.
4) Il file deve essere chiuso, ovviamente, e viene chiuso.
E solo l'elemento successivo dovrebbe essere condizionato a seconda di ciò che si legge nell'elemento 3, ma non il secondo elemento.
Cari guru di MQL - se non siete un problema, per favore aiutatemi con questo codice, ho passato mezza giornata sui motori di ricerca, ma non ho trovato nulla di simile.
Credo che siano poche righe, ma per un utente esperto è una questione di minuti)))
Come può una dll in c++ prendere una stringa da mql4 e convertirla in char*?
Questo è il codice giusto, vero?Ciao a tutti, potreste consigliarmi per favore, ho scritto un EA circa un anno fa, funzionava bene. Non l'ho usato per tutto questo tempo. Non so cosa farci, non so proprio cosa farci. Può essere perché ho cambiato Build? Attualmente sto usando la Build 1090.
Sembra essere una questione di poche righe, che per una persona esperta è una questione di tre minuti)))
Ci ho messo due ore. Devo controllare il sistema pezzo per pezzo. Esegui entrambi gli EA contemporaneamente su grafici adiacenti - tutto sarà visibile. Expert Advisor 1 = Scrivi su file
//+------------------------------------------------------------------+ //| Запись в файл -1 0 1 1.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(7); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждые 7 секунд | //+------------------------------------------------------------------+ void OnTimer() { int x=0; if(rand()<20000) { x=1; if(rand()<16000) x=-1; } ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 3); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор",(string)x+" Открываю",20,"Arial",Yellow); ChartRedraw(0); Sleep(2000); int handle = FileOpen("123.txt", FILE_BIN | FILE_WRITE); if(handle == -1) { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } ObjectSetText("Семафор",(string)x+" Записываю",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileWriteInteger(handle, x, 4); Sleep(2000); ObjectSetText("Семафор","",20,"Arial",White); ChartRedraw(0); FileClose(handle); }
EA 2 = Leggere il file
//+------------------------------------------------------------------+ //| Чтение файла -1 0 1 2.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(1); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждую секунду | //+------------------------------------------------------------------+ void OnTimer() { int x=0; ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 2); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор","",20,"Arial",Yellow); ChartRedraw(0); Sleep(500); int handle = FileOpen("123.txt", FILE_BIN | FILE_READ); // Получаем НОМЕР файла в ОС if(handle == -1) // Если производится запись, файл занят, будет ошибка { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } x = FileReadInteger(handle,4); // Получаем СОДЕРЖИМОЕ файла ObjectSetText("Семафор",(string)x+" Прочитал",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileClose(handle); }
Ciao a tutti, potreste dirmi per favore, ho scritto un EA circa un anno fa, funzionava bene. Non l'ho usato per tutto questo tempo. Non so cosa farci, non so proprio cosa farci. Può essere perché ho cambiato Build? Attualmente sto usando la Build 1090.
È abbastanza possibile, ci sono state molte innovazioni. Iniziare controllando gli errori di compilazione. Con la direttiva #PropertyStrict.
È possibile che ci siano state molte innovazioni. Iniziare controllando gli errori di compilazione. Con la direttiva #PropertyStrict.
Non esiste una tale direttiva.
C'è:
È possibile che ci siano state molte innovazioni. Iniziare controllando gli errori di compilazione. Con la direttiva #PropertyStrict.
Non esiste una tale direttiva.
C'è:
Ma non riesco ad aprire il file EA che è sul mio computer con estensione ex4, ma non c'è un tale file attraverso MetaEditor. Per favore, ditemi qual è la ragione.