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

 

Cari professionisti, vi prego di consigliarmi su questa domanda:

Ho un array di stringhe monodimensionale scritto in precedenza in un file di testo

EURUSD 1654.31

GBPUSD -1654.61

USDCAD 110.98

USDJPY 1180.17

Supponiamo che il profitto totale di USDCAD sia cambiato e ho bisogno di sostituire la terza linea con "USDCAD 115.64".

Leggo questi dati come un array di stringhe unidimensionale, ma non posso sostituire solo questo elemento nel file di testo (qualcuno può scrivere una funzione?)

O è meglio non preoccuparsi e sovrascrivere l'intero array?

Ho solo dati in arrivo da EAs che stanno su coppie diverse - ogni coppia ha una stringa diversa - sarebbe ovviamente meglio cambiare solo 1 elemento probabilmente.

 

Ciao a tutti!!! Aiuto per capire l'esempio di HELPA

//--------------------------------------------------------------------
//obviousexpert.mq4
// Destinato ad essere usato come esempio nel tutorial MQL4.
//--------------------------------------------------------------- 1 --
#property copyright "Copyright © Book, 2007"
#proprietà link "http://AutoGraf.dp.ua"
//--------------------------------------------------------------- 2 --
#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>
//--------------------------------------------------------------- 3 --
#include <Variabili.mqh> //Variabili descrizione
#include <Check.mqh> // Controllare la legalità del programma.
#include <Terminal.mqh> // Contabilità degli ordini
#include <Events.mqh> // Monitoraggio degli eventi, aggiornato.
#include <Inform.mqh> // Funzione informativa
#include <Trade.mqh> // Funzione commerciale
#include <Open_Ord.mqh> // Apertura di un singolo ordine di un tipo specificato
#include <Close_All.mqh> // Chiusura di tutti gli ordini di un tipo specificato
#include <Tral_Stop.mqh> // Modifica dello StopLoss di tutti gli ordini di un tipo specificato
#include <Lot.mqh> // Calcolo del numero di lotti
#include <Criterio.mqh> // Criteri commerciali
#include <Errors.mqh> // Funzione di gestione degli errori.
//--------------------------------------------------------------- 4 --
int init() // Funzione speciale init
{
Level_old=MarketInfo(Symbol(),MODE_STOPLEVEL );//min. dist.
Terminale(); // Funzione di ordine
return; // Esci da init()
}
//--------------------------------------------------------------- 5 --
int start() // Funzione speciale start
{
if(Check()==false) // Se le condizioni di utilizzo.
return; // ...non sono soddisfatti, uscire.
PlaySound("tick.wav"); // Su ogni tick
Terminal(); // Funzione di contabilità degli ordini
Eventi(); // Informazioni sugli eventi
Trade(Criterion()); // funzione Trade
Inform(0); // per ricolorare gli oggetti
return; // Exit()
}
//--------------------------------------------------------------- 6 --
int deinit() // Funzione speciale deinit()
{
Inform(-1); // Per rimuovere gli oggetti
return; // Esci da deinit()
}
//--------------------------------------------------------------- 7 --

2) Solo nel luogo di stoccaggio? o anche nella progettazione del codice?

Le domande sono: 1) Qual è la differenza tra gli include file (#include<...> e #include "..."), 3) E qual è la differenza tra le funzioni importate (#import) e la direttiva #include?

L'esempio di HELPA di usualexpert.mq4 illustra l'Expert Advisor, che è stato costruito sui file include, a giudicare dalle parentesi <> nella sua directory #include.

Domande: Il file #include <Variables.mqh> è incluso // Una descrizione delle variabili, quando create secondo l'esempio:

//--------------------------------------------------------------------
// Variabili.mqh
// Destinato ad essere usato come esempio nel tutorial MQL4.
//--------------------------------------------------------------- 1 --
// Descrizione delle variabili globali
extern double Lots =0.0; // Numero di lotti
extern int Percent =0; // Percentuale dei fondi assegnati
extern int StopLoss =100; // StopLoss per i nuovi ordini (punti)
extern int TakeProfit =40; // TakeProfit per nuovi ordini (punti)
extern inttern TralingStop=100; // TralingStop per ordini a mercato (punti)
//--------------------------------------------------------------- 2 --
int
Level_new, // Nuovo valore della distanza minima
Level_old, // valore precedente della distanza minima
Mas_Tip[6]; // Array di tipi di ordine
// [] tipo di ordini: 0=B,1=S,2=BL,3=SL,4=BS,5=SS
//--------------------------------------------------------------- 3 --
doppio
Lots_New, // Numero di lotti per i nuovi ordini
Mas_Ord_New[31][9], // Array di ordini attuali .
Mas_Ord_Old[31][9]; // .
// indice 1 = numero d'ordine
// [][0] non è definito
// [][1] prezzo dell'ordine aperto (valore assoluto)
// [][2] Ordine StopLoss (valore assoluto)
// [][3] Ordine TakeProfit (valore di tasso assente)
// [][4] numero d'ordine
// [][5] numero di lotti dell'ordine. (tasso assente)
// [][6] Tipo di ordine 0=B,1=S,2=BL,3=SL,4=BS,5=SS
// [][7] numero magico dell'ordine
// [][8] 0/1
//--------------------------------------------------------------- 4 --

La compilazione dà un errore -- '\fine_di_programma' - nessuna funzione definita cosa significa e dovrei aggiungere qualcosa alla fine di questo esempio

E i file inclusi dovrebbero apparire così o dovrebbero essere aggiunti all'intestazione:

#property copyright "Copyright © 2004, MetaQuotes Software Corp.
#proprietà link "http://www.metaquotes.net/"
#proprietà biblioteca
//+------------------------------------------------------------------+
//| restituisce la descrizione dell'errore
//+------------------------------------------------------------------+

Per esempio, come parte di ( usualexpert.mq4 // destinato all'uso come esempio nel tutorial MQL4. ) C'è #include <Check.mqh> // Controllo della legittimità dei programmi utilizzati. Senza questo cappello, genera un errore (Funzione di avvio non trovata e non può essere eseguita). Va tutto bene?

Oppure, i file include contengono solo descrizioni di funzioni personalizzate situate nella libreria di funzioni all'indirizzo (librerie). Se esiste già nel file Expert Advisor?

 
Las-tochka:

Ciao a tutti!!! Aiutami a capire un esempio di HELPA

//--------------------------------------------------------------------
// usualexpert.mq4
// Progettato per essere usato come esempio nel tutorial MQL4.
//--------------------------------------------------------------- 1 --
#property copyright "Copyright © Book, 2007"
#property link "http://AutoGraf.dp.ua"
//--------------------------------------------------------------- 2 --
#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>
//--------------------------------------------------------------- 3 --
#include <Variables.mqh> //Descrizione delle variabili
#include <Check.mqh> // Verifica la legalità dell'uso del programma
#include <Terminal.mqh> // Contabilità degli ordini
#include <Events.mqh> // Funzione di monitoraggio degli eventi, aggiornata
#include <Inform.mqh> // Funzione informativa
#include <Trade.mqh> // Funzione commerciale
#include <Open_Ord.mqh> // Apertura di un singolo ordine di un tipo specificato
#include <Close_All.mqh> // Chiusura di tutti gli ordini di un tipo specificato
#include <Tral_Stop.mqh> // Modifica dello StopLoss di tutti gli ordini di un tipo specificato
#include <Lot.mqh> // Calcolo del numero di lotti
#include <Criterio.mqh> // Criteri di trading
#include <Errors.mqh> // Funzione di gestione degli errori.
//--------------------------------------------------------------- 4 --
int init() // Funzione speciale init
{
Level_old=MarketInfo(Symbol(),MODE_STOPLEVEL );// Dist. minima
Terminal(); // Funzione di conteggio degli ordini
return; // Exit init()
}
//--------------------------------------------------------------- 5 --
int start() // Funzione speciale start
{
if(Check()==false) // Se condizioni di utilizzo.
return; // ...non sono soddisfatti, uscire
PlaySound("tick.wav"); // Ad ogni tick
Terminal(); // Funzione di contabilità degli ordini
Events(); // Informazioni sugli eventi
Trade(Criterion()); // Funzione di trading
Inform(0); // Per ricolorare gli oggetti
return; // Uscire start()
}
//--------------------------------------------------------------- 6 --
int deinit() // Funzione specifica deinit() function deinit()
{
Inform(-1); // Per cancellare gli oggetti
return; // Esci da deinit()
}
//--------------------------------------------------------------- 7 --

2) Solo nel luogo di memorizzazione o anche nella progettazione del codice?

Le domande sono: 1) Qual è la differenza tra gli include file (#include<...> e #include "..."), 3) E qual è la differenza tra le funzioni importate (#import) e la direttiva #include?

L'esempio di HELPA, in particolare, illustra l'Expert Advisor, che è stato costruito sulla base dei file inclusi, a giudicare dalle parentesi <> nel suo file #include.

Domande: Include\file #include <Variables.mqh> //Descrizione delle variabili, quando create dall'esempio:

//--------------------------------------------------------------------
// Variables.mqh
// Progettato per essere usato come esempio nel tutorial MQL4.
//--------------------------------------------------------------- 1 --
// Descrizione delle variabili globali
extern double Lots =0.0; // Numero di lotti
extern int Percent =0; // Percentuale allocata
extern int StopLoss =100; // StopLoss per nuovi ordini (pips)
extern int TakeProfit =40; // TakeProfit per nuovi ordini (pips)
extern int TralingStop=100; // TralingStop per ordini a mercato (pip)
//--------------------------------------------------------------- 2 --
int
Level_new, // nuovo valore di distanza minima
Level_old, // valore di distanza minima precedente
Mas_Tip[6]; // array del tipo di ordine
// [] tipo di ordine 0=B,1=S,2=BL,3=SL,4=BS,5=SS
//--------------------------------------------------------------- 3 --
double
Lots_New, // numero di lotti per i nuovi ordini
Mas_Ord_New[31][9], // array di ordini corrente ..
Mas_Ord_Old[31][9]; // ... e vecchio
// 1° indice = numero d'ordine
// [][0] non può essere definito
// [][1] prezzo dell'ordine aperto (tasso abc)
// [][2] ordine StopLoss (tasso abc)
// [][3] ordine TakeProfit (tasso abc)
// [][4] numero d'ordine
// [][5] numero di lotti un ordine (tasso abc) (Abc Rate)
// [][6] Tipo di ordine 0=B,1=S,2=BL,3=SL,4=BS,5=SS
// [][7] ordine numero magico
// [][8] 0/1 commento fatto
//--------------------------------------------------------------- 4 --

Alla compilazione esce un errore -- '\fine_di_programma' - nessuna funzione ha definito cosa significa e se è necessario aggiungere qualcosa alla fine di questo esempio

E i file di inclusione dovrebbero apparire così o dovrebbero essere aggiunti all'intestazione

#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property library
//+------------------------------------------------------------------+
//| return error description |
//+------------------------------------------------------------------+

Per esempio, come parte di ( usualexpert.mq4 // destinato all'uso come esempio nel tutorial MQL4. ) C'è #include <Check.mqh> // Controllo della legalità dei programmi usati. Senza questo cappello, genera un errore (Funzione di avvio non trovata e non può essere eseguita). È tutto a posto?

Oppure, i file include contengono solo descrizioni di funzioni personalizzate, che si trovano nella libreria di funzioni all'indirizzo (librerie). Se esiste già nel file Expert Advisor?

Leggete bene l'esempio del libro di testo - è tutto lì... Gli include sono sezioni di programma incluse (strutturalmente denominate secondo il loro contenuto, a seconda del compito svolto da ciascuna di esse) - non hanno bisogno di essere compilate. Sono copiati dall'esperto e le inclusioni sono messe nel file *.ex4 in modo sequenziale, a seconda di come le avete scritte nel testo del programma. Ecco perché il #include <Variables.mqh> /La descrizione delle variabili è la PRIMA nel blocco 3 del programma. Prova a spostarlo alla fine di questo blocco e compila l'Expert Advisor - vedi quanti errori ci saranno.
 
alsu:
.......

Un modo migliore per calcolare il modo è quello di costruire una funzione di distribuzione empirica (da non confondere con la distribuzione di frequenza), poi interpolarlo da piecewise linear a smooth, e infine cercare il punto di massima derivazione. Un tale algoritmo è privo degli svantaggi elencati sopra e funziona abbastanza efficacemente anche con campioni di piccole dimensioni. Almeno, ho dovuto risolvere solo il compito di trovare una modalità per campioni di 50-100 elementi con un numero comparabile di intervalli usando MQL - e tutto era OK. L'unico svantaggio è che la velocità di calcolo di solito diminuisce significativamente quando si usano le interpolazioni, naturalmente, se si vuole smussare qualitativamente.

Alexey, grazie mille.... Il principio generale di questa funzione mi è chiaro))))
 
Ciao, potresti dirmi cosa significa Comment(""), cosa produrrà la funzione in questo caso?
 
Chuma:
Ciao, potresti dirmi cosa significa Comment(""), cosa produrrà la funzione in questo caso?
Una casella con il testo tra virgolette
 
Comment() visualizza il testo non nella casella ma nell'angolo in alto a sinistra del grafico
 
Ho riscontrato una discrepanza, c'è un indicatore che lavora ai prezzi di apertura e c'è un EA in cui il TF a cui scambia è impostato utilizzando i segnali di questo indicatore. Ho impostato 15 min nell'EA e nel tester - aprendo i prezzi, ottengo qualche risultato. Ma se impostiamo per esempio 1 minuto nel tester - a prezzi aperti il risultato non è troppo radicalmente, ma cambia. Non capisco cosa sta succedendo? Si scopre che il prezzo di apertura del minuto non coincide con il prezzo di apertura dell'ora? O è un errore del tester? Può dirmi dove è sepolto il cane?
 
moskitman:
la casella con il testo tra virgolette

Intendevo quando ci sono solo le virgolette tra parentesi: Comment("")

 
Chuma:

Intendevo quando ci sono solo le virgolette tra parentesi: Comment("")

Cancella i commenti precedenti.
Motivazione: