[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 993

 
Aleksander:

Quindi visualizzalo sul lato sinistro dello schermo - qual è la differenza? - La linea a destra avrà il prezzo - a sinistra il testo del messaggio...

o il fascio - ma allora tutto è a sinistra...


Questa è la richiesta del cliente :) Altri indicatori sono usati a sinistra in modo che uno non si sovrapponga all'altro.

Bene, risolverò il problema, grazie a tutti per la vostra partecipazione!

 
Ciao, ho una domanda: c'è un modo per ottimizzare un EA in MT4 per diverse coppie di valute contemporaneamente? o forse c'è un programma speciale per questo? o almeno per accelerare l'ottimizzazione (per caricare completamente la CPU)?
 
gawrik:
Salve, ho una domanda: c'è un modo per ottimizzare un consulente su diverse coppie di valute contemporaneamente in MT4?

È possibile eseguire diversi MT4 allo stesso tempo con l'ottimizzazione di un EA su diverse coppie.

Se è proibito, allora ditegli che lo permetto

 
Aleksander:

prova ad entrare per assegnare il delta

delta = 1; se (cifre = 5) {delta = 10;}

e nel testo aggiungere

if (Bid <=Low&&& Ask < High - 10*Point*delta)

Questo probabilmente non è del tutto corretto, ma il significato è chiaro

delta = Punto; if(digits = 5) {delta = 10*Punto;}

se (Bid <=Low&&& Ask < High - 10*delta) anche se non c'è differenza, ma... e io?

 

e la seguente domanda sugli spread dinamici rende necessario calcolare lo spread medio su N tick,

Ho disegnato quanto segue, ma non sono sicuro che sia corretto:

int TicSpred=100;

doppio Spread[10000];

if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}

per (int q=TicSpred;q>0;q--){

se (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}

per (q=TicSpred;q>0;q--){Spread[p]=Spread[p-1];}

Spread[0]=(Ask-Bid)/delta;

doppio CountedSpred;

for (q=0;q<bars;q++){CountedSpred=CountedSpred+Spread[p];}

double Aversired=CountedSpred/TicSpred; ma non sono sicuro che questo sia corretto, e non sembra contare correttamente per cinque cifre

 

No, non è affatto giusto.

Ho bisogno di scrivere ogni prossimo spread in un array, e dividerlo per il numero di spread nell'array, e non appena il numero di record raggiunge N, ho bisogno di rimuovere il primo nell'array

si può fare qualcosa di più semplice?

 

C'è anche un errore qui

if (Bid >=High ) // Close Bay

ritorno (11);

se (Bid <=Low && Ask <High - 1*delta )

return (21); // Chiudi Vendi

se (commercio == 1){

if ( Bid <=Low ) // Open Bay

Stampa ( " Bay = ",11);

return (10);}

se (Tempo == 1){

if (Bid<=Low&&Ask<High -1*delta ) // Apertura di Srll

Stampa (" Vendi= ",21);

return (20);}

return; // se il tempo non è buono, non aprite qualcosa; semplicemente uscite.

Le seguenti variabili High e Low sono note (ho controllato con una stampa) e il prezzo mostra le seguenti condizioni

1.se buy > High, allora inviamo un comando 10 (close buy)

2. se comprare < Low e asc è inferiore a High di 1 punto, allora chiudere con ritorno 11

se la variabile Time == 1 allora:

3. se il Bid è inferiore o uguale al Low e l'Ask è inferiore all'High di almeno un punto, allora apri Buy

4. se il Bid è superiore o uguale a High, allora apriamo Sell?

Voglio ricordare che questo programma è completamente dal tutorial, cambio solo i criteri di trading, rispettivamente, il comando 10, 20 tutti standard, allegherò tutte le funzioni che sono chiamate solo nel caso

File:
close_all.mqh  3 kb
open_ord.mqh  3 kb
trade.mqh  3 kb
 

Gente! Ciao a tutti, aiuto!

Ho bisogno di scrivere un intervallo di tempo nella funzione dell'indicatore allert. tipo, una finestra si apre quando appare un segnale e possiamo vedere da quale grafico questo segnale. M15 per esempio.

Ho cercato sul sito, ma non trovo niente del genere.

 

Gente! Ciao a tutti, aiuto!

Ho bisogno di scrivere un intervallo di tempo nella funzione dell'indicatore allert. tipo, una finestra si apre quando appare un segnale e possiamo vedere da quale grafico questo segnale. M15 per esempio.

Ho cercato sul sito, ma non trovo niente del genere.

 

Comunque, questa funzione

//--------------------------------------------------------------------

// Criterio.mqh

// destinato ad essere usato come esempio nel tutorial MQL4.

//--------------------------------------------------------------- 1 --

// Funzione per calcolare i criteri di scambio.

// Valori restituiti:

// 10 - apertura Comprare

// 20 - Apertura di vendita

// 11 - chiusura Acquisto

// 21 - Vendere la chiusura

// 0 - nessun criterio significativo

// -1 - viene usato un altro strumento finanziario

//--------------------------------------------------------------- 2 --

// Variabili esterne:


//--------------------------------------------------------------- 3 --

int Criterion() // Funzione utente

{

//----------------------------------------------------------------4----

stringa Sym="________";

if (Sym!=Symbol()) // Se non è il nostro fin.

{

Inform(16); // messaggio.

return(-1);} // ...e uscire

delta = Punto;

if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY", 0) != -1))

delta= Punto *10;

int Digital=MarketInfo(Symbol(),12);

//--------------------------------------------------------------- 5 --

// Parametri per l'indicatore tecnico:

bool trade;

if (Begin>End && (Hour()>Begin-1 || Hour()<End)){trade=1;}

if (Begin<End && (Hour()>Begin-1 && Hour()<End)){trade=1;}

{if (trade==0 && mag!=Mag) return(0);}

// --------------------------Calcolare lo spread medio-----------------------

if (!IsTesting() || IsVisualMode() || !IsOptimization())

{

int TicSpred=100;

doppio Spread[10000];

if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}

per (int q=TicSpred;q>0;q--){

se (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}

per (q=TicSpred;q>0;q--){Spread[q]=Spread[q-1];}

Spread[0]=(Ask-Bid)/delta;

doppio CountedSpred;

for (q=0;q<TicSpred;q++){CountedSpred=CountedSpred+Spread[q];}

double Averaged=CountedSpred/TicSpred;

}


//--------------------------------------------------------------- 5 --

// Calcolo dei criteri di negoziazione

if (Bid >=High ) // Close Bay

ritorno (11);

se (Bid <=Low )

return (21); // Chiudi Vendi

se (commercio == 1){

if ( Bid <=Low &&Ask<High -0.5*MyPoint ) // Open Bay

Stampa ( " Bay = ",11);

return (10);}

se (commercio == 1){

if (Bid>=High ) // Apertura del Srll

Stampa (" Vendi = ",21);

return (20);}

return; // se il tempo è cattivo, non aprite nulla; uscite e basta.


//--------------------------------------------------------------- 6 --

return(0); //uscita dalla funzione utente

}

//--------------------------------------------------------------- 7 --

si presume che le variabili Low e High siano già state definite e siano corrette

Motivazione: