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

 
artmedia70 ha scritto(a) >>.
Rispettati guru! >> Si prega di consigliare i dummies bloccati nel deserto come organizzare il monitoraggio degli ordini e degli eventi su più coppie di valute e più timeframe contemporaneamente in un EA. La contabilità degli ordini in un grande programma e la funzione di monitoraggio degli eventi non mi danno risposte chiare alle mie domande. Non ho trovato nessuna risposta nelle enormi distese di questa meravigliosa risorsa. Non ho mai pensato che un compito semplice (semplice nel mio cuore) possa portare un bollitore a fermarsi per così tanto tempo e in modo irreversibile, e inchiodarlo nel muro, che non ne uscirà più... :)
Capisco che dovrei organizzare la revisione degli ordini in un ciclo, ma non riesco a capire come tenere traccia delle posizioni aperte e impostare gli ordini contemporaneamente per diverse coppie di valute e diversi timeframes. Dannazione, sono stato bloccato in questa situazione per un mese. Ho fatto un Expert Advisor da manuale, che fa trading solo su una coppia e un timeframe, ma ovviamente non si adatta al mio TS e non soddisfa i requisiti di cui ho bisogno per implementare un sistema di trading.
Già un grido d'aiuto... Aiutami a capirlo. Se solo un suggerimento dove posso leggerlo (solo per favore non rimandatemi al tutorial) e preferibilmente con esempi (cosa può fare un principiante senza esempi - sentire è sempre meglio che guardare...).

Sarei grato a chiunque risponda in qualche modo ad una richiesta di aiuto.

Pensa a un codice per te stesso,

che codificherebbe tutte le differenze tra gli ordini come una variabile int e la assegnerebbe a un mago,

Se sondate un mago, saprete esattamente quale ordine avete in mano.

 
Dimmi, l'EA dovrebbe disegnare gli oggetti grafici nel tester in una finestra separata, non nella finestra del prezzo? Per qualche motivo non funziona quando si sostituisce lo zero con uno quando si crea un oggetto.
 
GVA63 >>:

Можeт вопрос покажeтся странным, но отвeт найти нe могу:

почeму при работe в "автматe", при одном и том-жe SL, ТP рeзультат сдeлок разный ? (разница до 3х пунктов). Буду благодарeн, eсли хотябы ссылку дадитe на соотв.

Scivolamento, forse?

Cosa intende per funzionamento "automatico"? Cosa intende per "automatico"?

 
Necron >>:
Добрый день. Подскажите пожалуйста как сделать панель на графике, на которую можно было бы поместить несколько графических объектов. Притом координаты объектов должны изменяться при перемещении панели в соответствии с координатами панели. Где-то видел в кодебазе пример такой, но не могу найти. Благодарен за помощь
Ecco, problema risolto. Esempio qui -> https://www.mql5.com/ru/code/9403
 

Il metodo 'Checkpoints' prende in considerazione le quotazioni del più piccolo lasso di tempo più vicino.

Se stiamo ottimizzando su 1 ora e la storia viene scaricata solo per H1 e M5 -> M5 sarà usata o ignorata?

 
Grazie a tutti voi, che avete risposto alla mia domanda precedente.
Ora una domanda come questa:
posso usare la seguente costruzione quando chiamo MarketInfo:

______________________________________________________________________

for (int ln=1; ln<=Instr_Count; ln++) // Cerca attraverso l'array degli strumenti dell'albero
{
for (int mode=1; mode<=9; mode++) // Ciclo attraverso le modalità MarketInfo degli strumenti dell'albero,
{ // uguale al valore corrente ln
Level_old=Mas_Ord_Old[0][ln][mode]; // Prendi il valore dall'array Mas_Ord_Old [0][simbolo strumento].][MODE=mode]
Level_new=MarketInfo(Instrument[ln] ,mode+10); // Prendi lo stesso valore dal DC
// Qui Instrument[ln] secondo l'array dei nomi degli strumenti.
// restituire il nome dal valore di ln, poi
// aggiungere 10 al valore di mode e lavare MODE_XXX)

if (Level_old!=Level_new) // Se i dati della società di intermediazione sono cambiati
{
Level_old=Level_new; // memorizza il nuovo valore di Level_new in Level_old,
Mas_Ord_New[0][ln][mode]=Level_new; // memorizzalo nell'array Mas_Ord_New
Inform(10,Level_new); // Segnala i cambiamenti al broker
// Questa funzione dovrebbe anche essere migliorata per messaggi più informativi...
}
} // Se i dati DC su questa modalità non sono cambiati, ripetere
// il ciclo sulla modalità successiva. Fino a mode=9

} // Abbiamo controllato tutti i MODE per la coppia di valute data, passiamo al prossimo

..................

Instrument[ln] è un array di tipo stringa con i nomi delle coppie di valute:

Instrument[1] = "EURUSD";
Instrument[2] = "USDCHF";
Instrument[3] = "GBPUSD";
Instrument[4] = "USDJPY";
Instrument[5] = "AUDUSD";
Instrument[6] = "USDCAD";
Instrument[7] = "EURCHF";
Instrument[8] = "EURGBP";
Instrument[9] = "EURJPY";
Instrument[10]= "EURCAD";
Instrument[11]= "EURAUD";
Instrument[12]= "GBPCHF";
Instrument[13]= "GBPJPY";
Instrument[14]= "CHFJPY";
Instrument[15]= "AUDCAD";

__________________________________________________________________________

?????????????????????????????????????????????
Grazie in anticipo... :)

 

Non sono entrato nella logica del tuo ciclo. Ma una rapida occhiata a ciò che vi ho sottolineato con una linea rossa ha attirato la mia attenzione. Se i dati DC non sono cambiati, allora ripetete. Ma se l'avessero fatto? Cosa deve fare l'Expert Advisor se non è cambiato? Dov'è il comando?

Quando il programmatore va a letto, mette due bicchieri vicino al letto. Uno - con acqua - nel caso in cui il programmatore abbia sete. L'altro è vuoto - nel caso in cui il programmatore non voglia bere.

Sto scherzando, ma nella programmazione bisogna spesso gestire entrambi i rami dell'albero della divisione dicotomica.

P.S.

A proposito, artmedia70, nota come le parentesi e i trattini sono disposti nel tuo codice nel mio screenshot. Il codice è molto più leggibile in questo modo. È solo per vostra informazione.

 

Una costruzione come:

if(A>B)
{
  // какие-то действия
}

è corretto, ma meno conveniente del costrutto di tipo:

if(A>B){
  // какие-то действия
}

La parentesi graffa di apertura nel primo caso aggiunge una riga in più al codice, mentre nel secondo caso una riga in più viene esclusa. Una parentesi graffa di chiusura nel secondo caso indica a quale comando si riferisce perché si trova direttamente sotto il primo carattere di questo comando. Così, è facile trovare la parentesi di apertura nel secondo caso come nel primo. Ma qual è il vantaggio del secondo modo? Escludere le linee non necessarie significa che più codice può essere visto sullo schermo e l'occhio copre più informazioni. Di conseguenza, è più facile navigare nel codice, il che significa più comodità nella programmazione.

 
Ho un'altra domanda. C'è un indicatore (allegato) che mostra il prezzo di apertura ed è possibile impostare un offset relativo al tempo di apertura in ore e aggiunto più in minuti. Potete dirmi per favore come fare in modo che il livello sia disegnato solo al momento della chiusura della barra giornaliera? Sono così confuso :(
File:
 
drknn >>:

Конструкция типа:

является правильной, но менее удобна чем конструкция типа:

Tipo di design.

if(A>B)
{
  // какие-то действия
}

È corretto. Ma un costrutto come

if(A>B){
  // какие-то действия
}

è obsoleto. La linea nell'esempio (1) non è superflua ed è usata per segnare in modo inequivocabile l'inizio di un blocco logico di codice. Siamo nel 21° secolo, il risparmio di spazio è ridicolo.

Se vi sta bene, fate pure, ma non fate in modo che gli altri lo scrivano male.

MA! Qual è il vantaggio del secondo modo di scrivere? Evitare linee inutili significa che più codice si adatta a più linee e più informazioni sono visibili all'occhio. Di conseguenza, è più facile navigare nel codice e quindi più comodo programmare.

Sciocchezze.

Motivazione: