Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 622

 
neverness:

Non siamo bambini, siamo individui perfettamente sani di mente.

Non cerchiamo di sussurrare e di ingannarci a vicenda.

Ancora una volta ripeto la mia domanda:

Per favore, datemi un semplice codice dell'indicatore, in cui si costruisce qualche oggetto scriptato (OnStart(), per esempio, un'ellisse).

La procedura è la seguente:

Si entra nel MetaEditor. Fare clic su File->Create....

Cliccare su Indicatore.

E in questo ambiente si inserisce il codice dell'oggetto script (OnStart(), per esempio, ellipse).

È così semplice!!!

Buona fortuna!!!

Perché dovresti chiamare uno script da un indicatore se tutte le funzionalità necessarie possono essere descritte nell'indicatore?
 
Vitaly Gorbunov:
Perché avete bisogno di chiamare uno script dall'indicatore, se tutte le funzionalità necessarie possono essere descritte nell'indicatore?

Questa è la procedura più semplice in qualsiasi ambiente di programmazione. In C++ non c'è nessun problema.

Costruiamo un oggetto grafico da un flusso di dati. La posizione, la forma e altre caratteristiche dell'oggetto dipendono dai valori di questo flusso.

Poiché l'indicatore è responsabile del flusso di dati di input nell'ambiente MQL, costruiamo gli oggetti di interesse in questo ambiente.

Tutto è logico.

Ma MQL non permette di costruire questi oggetti.

Questo nonostante il fatto che questo non è un problema in C++, BASIC, JavaScript o qualsiasi altro ambiente di programmazione.

Che tipo di "funzionalità necessaria" intendeva descrivere è un mistero per me.

In generale.

I programmatori di solito parlano in un LINGUAGGIO DI CODICE.

Se puoi farlo, per favore dammi un ESEMPIO di CODICE!

Se non lo fa, non ha altra scelta che essere d'accordo con me.

È così semplice!

 

То есть, требуется не просто бросить объект на форму, или создать независимый ни  от чего объект, как в Вашем примере, а внедрить этот объект в вычислительную среду индикатора .

In altre parole, se il flusso di dati dell'indicatore cambia, cambia anche l'oggetto grafico.

Non, come nel tuo esempio, solo un manichino sul grafico che non dipende da nulla.


Qual è il problema se l'indicatore sa lavorare con questo oggetto, lavorerà con questo oggetto. Puoi descrivere concretamente il problema? Altrimenti stiamo parlando di un cavallo sferico nel vuoto.

 
neverness:

Questa è la procedura più semplice in qualsiasi ambiente di programmazione. In C++ non c'è alcun problema.

Costruiamo un oggetto grafico da un flusso di dati. La posizione, la forma e altre caratteristiche dell'oggetto dipendono dai valori di questo flusso.

Poiché l'indicatore è responsabile del flusso di dati di input nell'ambiente MQL, costruiamo gli oggetti di interesse in questo ambiente.

Tutto è logico.

Ma MQL non permette di costruire questi oggetti.

Questo nonostante il fatto che questo non è un problema in C++, BASIC, JavaScript o qualsiasi altro ambiente di programmazione.

Che tipo di "funzionalità necessaria" intendeva descrivere è un mistero per me.

In generale.

I programmatori di solito parlano in un LINGUAGGIO DI CODICE.

Se puoi farlo, per favore dammi un ESEMPIO di CODICE!

Se non ci riuscite, non avete altra scelta che essere d'accordo con me.

È così semplice!

Non saper usare la lingua non è un motivo per essere insultati.

I codici abbondano nel codebase, diversi, per ogni gusto e colore.

MQL5 Code Base
MQL5 Code Base
  • www.mql5.com
Две одинаковые торговые системы (для лонгов и шортов), построенные на сигналах индикатора ColorSchaffJJRSXTrendCycle, которые можно настраивать различным образом в одном эксперте с возможностью менять размер предстоящей сделки в зависимости от результатов предыдущих сделок для данной торговой системы.
 

Строим графический объект по потоку данных. Положение объекта, его форма и другие характеристики зависят от значений этого потока.

Poiché l'indicatore è responsabile del flusso di dati in ingresso nell'ambiente MQL, costruiamo gli oggetti di interesse in questo ambiente.

Tutto è logico.

Ma MQL non permette di costruire questi oggetti.


Quale oggetto non può essere costruito nell'indicatore?

 
Vitaly Gorbunov:

Qual è il problema, se l'indicatore sa lavorare con questo oggetto, lavorerà con questo oggetto. Puoi descrivere specificamente il problema? Altrimenti stiamo parlando di un cavallo sferico nel vuoto.

È abbastanza semplice.

Prendiamo l'evento dell'indicatore

int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])

e, per esempio, prendiamo un filo di valori orn[] e se il valore in questo filo è maggiore di quello preimpostato, costruiamo qualche oggetto grafico script in un certo punto del grafico con le caratteristiche calcolate.

Tutto è elementarmente semplice.

In altre parole, dobbiamo incorporare l'oggetto script OnStart() nel campo dati OnCalculate() e costruire l'oggetto di interesse con i valori calcolati.

È elementarmente semplice.

Come farlo in MQL?

 
Vitaly Muzichenko:

Non saper usare la lingua non è un motivo per essere insultati.

I codici abbondano in kodobase, di tutti i tipi, per tutti i gusti e colori.

Unskillfulness si scrive insieme -> https://ru.wiktionary.org/wiki/неумение

Ho già detto che ho deliberatamente lasciato fuori il "guscio matematico" di MQL.

Questo si riferisce anche a quei "codici molto diversi", che "abbondano in kodobase" e sono di tutti i "gusti e colori".

Bene, caro Vitaly!

Io stesso prendo tali osservazioni su di me come un insulto.

Ed essere abbastanza gentile da ottenere una parte di risposta.

Ecco qui.

Come avete giustamente notato, tutti i tipi di "codici miracolosi" che forniscono 1000% di profitto in kodobase davvero più che sufficiente.

Ma tutto il problema è quanto siano vere le informazioni che ci offrono gli autori di questi codici.

E se formuliamo matematicamente in modo rigoroso il compito di costruire "EAs win-win", questo compito suonerà qualcosa come questo

La formulazione del problema:

È possibile costruire un EA che dia un risultato vincente in qualsiasi situazione selezionata da questo EA?

Soluzione del problema.

Quindi.

Per quanto riguarda la soluzione puramente matematica del problema, si scopre che possiamo specificare la combinazione di

di flusso di quotazioni, in cui questo EA perderà consapevolmente, e il trader perderà consapevolmente i suoi fondi.

Naturalmente, non darò una soluzione puramente matematica di questo problema, ma potete essere sicuri che è vero.

Cioè, dal punto di vista matematico, per qualsiasi consulente, è possibile specificare tali o tali situazioni in cui le azioni di questo EA non saranno redditizie per un trader.


Se ora affrontiamo la questione dal punto di vista legale, tutte le offerte di vendita di qualsiasi Advisor non sono altro che un altro "schema fraudolento",

Perché nessun Expert Advisor è in grado di fornire un "win-win".


Quindi, caro Vitaly, nessun "saper usare la lingua" e nessun "saper usare i codici" proteggerà un trader dalle perdite.

E certamente non può essere un insulto.

Quindi la prossima volta, scegliete il vostro linguaggio con più attenzione.

 
Vitaly Gorbunov:

Quale oggetto non può essere costruito nell'indicatore?

Beh, costruiscine un po'.

Personalmente, non vedo all'orizzonte nessun oggetto del genere che possa essere costruito.

Mi piacerebbe vedere almeno qualcosa.

Sono ancora un "novellino" di MQL, dopo tutto. Forse non so qualcosa o ho trascurato qualcosa.

 
neverness:

È semplice.

Prendiamo un evento indicatore

int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])

e, per esempio, prendiamo un thread di valori oren[], e se il valore in questo thread è maggiore di quello preimpostato, costruiamo qualche oggetto grafico script in un certo punto calcolato del grafico con le caratteristiche calcolate.

Tutto è elementarmente semplice.

In altre parole, dobbiamo incorporare l'oggetto script OnStart() nel campo dati OnCalculate() e costruire l'oggetto di interesse con i valori calcolati.

È elementarmente semplice.

Come farlo in MQL?

Bene, costruite questo oggetto e poi controllatelo.

Proviamo così: descrivete un compito semplice, e lunedì cercherò di implementarlo.

 
Vitaly Gorbunov:

Quindi costruisci questo oggetto e poi controllalo, qual è il problema?

Diciamo che tu descrivi un compito semplice e io cercherò di implementarlo lunedì.

Ho già descritto un compito semplice.

Aprire MetaEditor.

Cliccate su File->Create.

Nel campo a comparsa selezionare Indicatore.

Nell'indicatore OnCalculate() introduce qualsiasi oggetto script con l'evento OnStart().

Personalmente non so come fare. Per esempio, così:

int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
for(int i = 1; i < 100;i++)

{

se(open[i] > Max)

{

OnStart()

E qui abbiamo bisogno di scrivere uno script per costruire l'oggetto che ci interessa. Per esempio, un'ellisse o una lettera su un grafico o qualcos'altro

} //if(open)

} //for(int i)
//--- restituire il valore di prev_calculated per la prossima chiamata
return(rates_total);
} // OnCalculate

Questo deve assomigliare a qualcosa del genere.

Ma questo codice non è accettato dal traduttore MQL.