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

 
Usual_Trader:


Da quanto ho capito,Refreshrates( ) lavora sullo strumento corrente o aggiorna i dati su tutti gli strumenti?


Per tutti gli strumenti.
 
Sarguss:

Buona sera.

Sono un po' "crucco" quando si tratta di codificare :) Sto costruendo un Expert Advisor basato sull'indicatore Fibonacci. Non sto prestando attenzione alla strategia finora. Il problema è 7 livelli di Fibonacci, come fare ogni livello attraversato impostare solo 2 diversi ordini pendenti e non di più.

Apprezzerei qualsiasi suggerimento.

Scusa per il mio russo imbarazzante.


Lavoro

P.S. "Un luccio per una carpa crucifera non sonnecchia" (proverbio russo).

 
Roll:


Lavoro

P.S. "Un luccio per una carpa crucca" (proverbio russo).


Grazie per il proverbio:))) Proprio sul tema -

Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Senza di te da nessuna parte - 4.

Finiscilo - qualsiasi risposta Profi!

 

Ciao esperti, per favore aiutatemi a creare uno script. Ci sono due indicatori MA(Moving Average) sul grafico, MA1 è segnato in rosso e MA2 in blu. Il compito dello script: incrociare MA1 e MA2 in modo che la linea rossa incroci quella blu dall'alto in basso. Chiameremo questo punto A e se la linea rossa incrocia quella blu dall'alto verso il basso, sarà il punto B. Quindi, al punto A, abbiamo bisogno dello scrip per chiudere un ordine di vendita e aprire un ordine di acquisto e al punto B per chiudere un ordine di acquisto e aprire un ordine di vendita. Questo ciclo dovrebbe essere infinito. In allegato un codice simile, per favore aiutatemi, vi sarò molto grato

File:
 
Lisi4ka330:
Per non peggiorare la confusione, voglio correggere l'errore che ho fatto nella risposta precedente - la notazione "array1[Bars*6-60,60][0]" non è corretta, perché Bars*6 è il numero totale di elementi in array1.Ogni barra ha 6 proprietà, supponiamo di avere 30 barre, moltiplicando per 6 otteniamo il numero di elementi nel primo array - 180. Il secondo array ha solo 60 "celle" libere (cioè 10 x 6 proprietà), quindi dobbiamo selezionare solo 60 elementi dal primo array da copiare. Esprimendo [Bars*6-60,60] sottraiamo 60 dal totale, cioè 180 - 60 = 120, cioè 120 elementi del primo array saranno scritti nell'elemento zero del secondo, 121 nel primo, e così via. Un'altra domanda è come risulta che le informazioni sulle ultime barre formate non sono scritte all'inizio del primo array, ma alla fine... Ma apparentemente la risposta si trova nel codice della funzione, e non ha senso scavare più a fondo...


Beh, ho un database, non c'entra niente. Natalya ha scritto in modo logicamente corretto. E anche nel caso in cui abbiamo 30 barre, il valore dell'indice dell'array1 è 120. Corrispondentemente, il valore dell'indice corrispondente dell'array2 è già dichiarato come 10 durante l'inizializzazione.

https://docs.mql4.com/ru/array/ArrayCopy

double array2[10][6];

In un libro C ho letto che:

Il linguaggio C non controlla l'overrun dell'array, il che significa che tecnicamentepotetescrivere qualcosa in un elemento con un indice inesistente, per esempio in A[345] o in A[-12].Ma così facendo cancellerete qualche cella della memoria non appartenente all'array, quindile conseguenze di tale passo sono imprevedibili e il programma si blocca in molti casi.

Risulta che l'indice dell'array1(l'array di origine) è maggiore dell'indice corrispondente dell'array2 (l'array di destinazione). E di conseguenza non si dovrebbe fare così! Questo è quello che volevo dire...

 

Ciao a tutti!

Ho provato a scrivere il mio primo EA :-), ma sono sorte alcune difficoltà.

La logica dietro è la seguente, c'è un indicatore che mostra il massimo e il minimo delle ultime n barre, quando rompe un massimo o un minimo si dovrebbe aprire un ordine.

Quando attacco l'EA al grafico, apre una posizione SELL. Non so perché succede così.

Penso che l'errore sia nella funzione iCustom(), che invia i parametri dell'indicatore.

Ho allegato l'EA e l'indicatore.

File:
xox.mq4  10 kb
 
Ed ecco l'indicatore.
File:
go_go_1.mq4  2 kb
 
Pacman:

Ciao a tutti!

Ho provato a scrivere il mio primo EA :-), ma sono sorte alcune difficoltà.

La logica dietro è la seguente, c'è un indicatore che mostra il massimo e il minimo delle ultime n barre, quando rompe un massimo o un minimo si dovrebbe aprire un ordine.

Quando attacco l'EA al grafico, apre una posizione SELL. Non so perché succede così.

Penso che l'errore sia nella funzione iCustom(), che invia i parametri dell'indicatore.

Ho allegato l'Expert Advisor e l'indicatore.

Non si riempie l'indice 0 degli array di indicatori,

   for(k=1; k<=Quant_Bars; k++)
      {
       Line_1[k]= Minimum;
       Line_2[k]= Maximum;
      }

ma vi si accede:

   double L_1= iCustom(NULL,0,"Go_go",K,0,0);  //Линия минимума
   double L_2= iCustom(NULL,0,"Go_go",K,1,0);  //Линия максимума 

È un po' (strutturalmente) scomodo, ma va bene per la prima volta. Il mio consiglio: "Abituatevi subito ad approcci corretti alla scrittura del codice. Per esempio, usando questa condizione nel tuo codice:

       if(Total==0 && Opn_B==true)              //Открытых ордеров нет + 
È analfabeta, perché prima o poi, si passa dal tester al trading online, e ci sono diversi Expert Advisors che lavorano in parallelo, e questo codice non funzionerà.
 
Pacman:
Ed ecco l'indicatore.

Qual è il vostro problema con iHighest() e iLowest()?