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

 
sergeev:
tutti
Intendo quelli normali.
 
drm1:
Intendo normale

Cosa è normale?
 
Zhunko:
Lo stai esprimendo in un modo divertente... Mostrami il codice che funzionerà con i tick, le posizioni aperte/chiuse senza la funzione start. Il codice di un EA completo senza la funzione strat?

In realtà, a giudicare dal tuo portfolio, non sta a me spiegarti qualcosa)! Lasciatemi prima spiegare la mia comprensione della funzione start(), e perché non mi piace l'idea di organizzare un ciclo in essa. Credo che la funzione start() sia una procedura, assegnata all'utente (o piuttosto al suo programma - Expert) dal sistema interno di interrupts del programma terminale. E per fare un loop all'interno di questo interrupt o per organizzare un proprio sistema di interrupt - beh, probabilmente non posso farlo. Anche se gli specialisti di MQ scrivono nella documentazione, per favore - while () loop nelle vostre mani, loop come volete in start(). E chi ci impedisce di fare il looping in init(), attraverso lo stesso ciclo vaille, e nessuno ci farà uno scatto dall'esterno! Tutte le variabili e le costanti sono accessibili, tutte le funzioni lavorano allo stesso modo. Vuoi ottenere un preventivo, con quale periodicità? Bene, ecco un codice di esempio, con periodicità di 5 sec si otterrà una quotazione fresca, ottenuta dall'ultimo tick e salvata nell'array Close [0]:

//-------------------------------------------
int init()
{
bool end;
while(!end)
{
Sleep (5000);
Print ("Quote = ", Close[0]);
}
return(0);
}
//--------------------------------------------
int start() {return(0);}
//--------------------------------------------
int deinit() {return(0);}
//--------------------------------------------

In MT5, a proposito, gli sviluppatori hanno già dato agli utenti alcune interruzioni, per le quali li ringrazio umanamente! Non posso astenermi dal citare:

In MQL5 diversi tipi di eventi possono contenere funzioni di gestione predefinite

OnTick - ricezione di un nuovo tick;

OnTimer - evento del timer;

OnTrade è un evento commerciale;

OnChartEvent - eventi di input da tastiera e mouse, eventi di spostamento dell'oggetto grafico, evento di completamento della modifica del testo nel campo di inserimento dell'oggetto LabelEdit;

OnBookEvent - evento di cambiamento dello stato di Depth of Market.


 
Vinin:

Cosa è normale?
per funzionare, il convertitore standard non funziona in alcun modo
 
drm1:
per funzionare, il convertitore standard non funziona in alcun modo

Funziona per tutti.
 
sergeev:

tutti lavorano.
È un bene che tutti stiano lavorando, quindi sono lento.
 
Grein:

In realtà, a giudicare dal tuo portfolio, non sta a me spiegarti qualcosa)! Lasciatemi prima spiegare la mia comprensione della funzione start(), e perché non mi piace l'idea di organizzare un ciclo in essa. Credo che la funzione start() sia una procedura, assegnata all'utente (o piuttosto al suo programma - Expert) dal sistema interno di interrupts del programma terminale. E per fare un loop all'interno di questo interrupt o per organizzare un proprio sistema di interrupt - beh, probabilmente non posso farlo. Anche se gli specialisti di MQ scrivono nella documentazione, per favore - while () loop nelle vostre mani, loop come volete in start(). E chi ci impedisce di fare il looping in init(), attraverso lo stesso ciclo vaille, e nessuno ci farà uno scatto dall'esterno! Tutte le variabili e le costanti sono accessibili, tutte le funzioni lavorano allo stesso modo. Vuoi ottenere un preventivo, con quale periodicità? Bene, ecco un codice di esempio, con una periodicità di 5 secondi si otterrà una quotazione fresca, ottenuta dall'ultimo tick e salvata nell'array Close [0]:

//-------------------------------------------
int init()
{
bool end;
while(!end)
{
Sleep (5000);
Print ("Котировка = ", Close[0]);
}
return(0);
}
//--------------------------------------------
int start() {return(0);}
//--------------------------------------------
int deinit() {return(0);}
//--------------------------------------------

Infine, leggete qui. Solo le funzioni con periodo di attesa funzionano in Expert Advisor e nell'avvio dello script. È severamente proibito in tutti gli altri luoghi.

Il tuo codice non si adatta agli standard di MQL4. Inoltre, è stato scritto da qualche parte che il tempo di attesa nelle funzioni ininit e deinit durante una chiamata di sistema è limitato a 2,5 secondi. Poi, la funzione viene terminata forzatamente.

 

Esperti, un consiglio! Come implementare questo nella vita? Sto lavorando con l'indicatore "Bollinger Bands", ho bisogno di attivare la soglia dopo aver attraversato la linea nel mezzo.

1. Tutto secondo lo standard, se il prezzo è < la linea inferiore, allora Bay

2. Se > la linea superiore, allora Vendi

Se il prezzo sfondasse la linea nel mezzo, allora il TrailingStop verrebbe attivato

Attenzione domanda! Come faccio ad associare la soglia di trailing stop alla linea nel mezzo?

 
Top2n:

Esperti, un consiglio! Come implementare questo nella vita? Sto lavorando con l'indicatore "Bollinger Bands", ho bisogno di attivare la soglia di attivazione dopo aver attraversato la linea nel mezzo.

1. Tutto secondo lo standard, se il prezzo è < la linea inferiore, allora Bay

2. Se > la linea superiore, allora Vendi

Se il prezzo sfondasse la linea nel mezzo, allora il TrailingStop verrebbe attivato

Attenzione domanda! Come faccio ad associare la soglia di trailing stop alla linea nel mezzo?


La prima cosa che mi è venuta in mente:
Se la linea inferiore è a 20 e la linea superiore è a 40, allora la linea che si trova esattamente nel mezzo tra loro, a quale livello si troverà?

Sono sicuro che risponderai rapidamente - al livello 30. E ora, si spera, potete trovare come calcolare il tutto. Anche se... forse troverai un altro metodo... :)

 
Top2n:

Esperti, un consiglio! Come implementare questo nella vita? Sto lavorando con l'indicatore "Bollinger Bands", ho bisogno di attivare la soglia di attivazione dopo aver attraversato la linea nel mezzo.

1. Tutto secondo lo standard, se il prezzo è < la linea inferiore, allora Bay

2. Se > la linea superiore, allora Vendi

Se il prezzo sfondasse la linea nel mezzo, allora il TrailingStop verrebbe attivato

Attenzione domanda! Come si imposta la soglia del trailing stop sulla linea centrale?



1. "Tutto secondo lo standard, se il prezzo è arrivato < alla linea di fondo, allora Wow" - sì, e se è arrivato più in alto, allora compra compra deposito... :-))) Impara un po' di alfabetizzazione per cominciare - Bay - questo è dell'Aglitsky per ora... In qualche modo, sono sicuro che non è un errore di stampa...

2. Hai da Bollinger - hai accesso diretto ai suoi limiti superiori e inferiori...o meglio ai loro valori... ottenere quei valori.

"Se la linea inferiore è a 20 e la linea superiore è a 40, la linea che si trova esattamente a metà strada tra loro, a quale livello si troverà?" -.

come la gente ti ha già raccomandato...

Sommate questi valori e divideteli per due - come risultato, avete la linea di mezzo di questo indicatore - questo valore e maglia la soglia per accendere la rete a strascico.

P.S. Artem, scusa per aver "corretto" l'antipasto della tua risposta - mi piaceva troppo ... e dopo il mio commento su questa domanda - avevo bisogno di finire questa "soglia di trailing stop alla linea centrale ".