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

 

Ho imparato le basi della programmazione (25 anni fa - Algol 60 :))) A quel tempo, tutto iniziava con la creazione di un algoritmo (quadrati, rombi), e poi questo algoritmo veniva descritto con un linguaggio. Ora non vedo nessun algoritmo o comando.

Avete qualche raccomandazione per buoni tutorial su mql4? Preferibilmente con esempi concreti di scrittura esperta, a partire dall'algoritmo.

 
v721965 писал(а) >>

Ho imparato le basi della programmazione (25 anni fa - Algol 60 :))) A quel tempo, tutto iniziava con la creazione di un algoritmo (quadrati, rombi), e poi questo algoritmo veniva descritto con un linguaggio. Ora non vedo nessun algoritmo o comando.

Avete qualche raccomandazione per buoni tutorial su mql4? Preferibilmente con esempi specifici di scrittura EA, a partire dall'algoritmo.

https://book.mql4.com/ru/

 
alvish >> :
pro si prega di consigliare, secondo l'aiuto di lingua mql5 non c'è funzione iHighest come calcolare massimo alto per N periodo? ... ho provato copyHigh e fmax, ma solo per un certo periodo e non che naturalmente, aiuto

Ecco un esempio:

         int shift_Box_Start = iBarShift(NULL, 0, TimeBoxStart);
         Box_Start_High      = High[iHighest(NULL, 0, MODE_HIGH, shift_Box_Start- i, i+1)];
         Box_Start_Low       =  Low[iLowest(NULL,  0, MODE_LOW,  shift_Box_Start- i, i+1)];

Assicurati solo di avere il cambio giusto.

 

1. Cerco di eseguire l'EA in modalità test con visualizzazione. L'EA è semplice: genera un messaggio attraverso Alert. Quando Alert è in init, il messaggio è dato all'inizio. Quando è in avvio, l'EA non reagisce a un nuovo tick. Qual è il problema?

2. Nella stessa modalità di test, avvio anche uno script che visualizza i valori di Time[1], Close[1],... (per riferimento). Ho scoperto che questi valori sono basati sul tempo corrente (effettivo) e non sul tempo di ricezione dei tick e delle barre formate nel grafico. Cosa si può fare?

 
Roger писал(а) >>

Per EURGBP restituisce - 0 (che è Alpari) short e -0.68 long e questo è esattamente in dollari.

Per Alpari il tipo di calcolo dello swap è 0 e il mio è 1,

Ho bisogno di conoscere tutti i tipi di calcoli, però.

Ho provato tutte le combinazioni: moltiplicazione, divisione o nessuna moltiplicazione.

Ecco il codice che calcola tutto questo e restituisce il più vicino al valore reale dello swap.

int a,b,c,d,dd;

dd=1;

double raznica;

for ( j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {

int a_=0,b_=0,c_=0,d_=0;

raznica=1000000;

OrderSelect(j, SELECT_BY_POS, MODE_HISTORY);

if(OrderSwap()!=0){

if(OrderType()==OP_BUY){

for(a=-dd;a<=dd;a++){

for(b=-dd;b<=dd;b++){

for(c=-dd;c<=dd;c++){

for(d=-dd;d<=dd;d++){

double gg=MathPow(MarketInfo(OrderSymbol(),MODE_SWAPLONG),a)*MathPow(OrderLots(),b)*MathPow(MarketInfo(OrderSymbol(),MODE_TICKVALUE),c)*MathPow(MarketInfo(OrderSymbol(),MODE_BID),d);

if(MathAbs(gg-OrderSwap())<raznica){raznica=MathAbs(gg-OrderSwap());a_=a;b_=b;c_=c;}

}}}}

Alert(" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+"РАСЧЕТНЫЙ СВОП = "+gg+"\n a= "+a_+" b = "+b_+" c = "+c_+" d = "+d_);

}//if(OrderType()==OP_BUY){

if(OrderType()==OP_SELL){

for(a=-dd;a<=dd;a++){

for(b=-dd;b<=dd;b++){

for(c=-dd;c<=dd;c++){

for(d=-dd;d<=dd;d++){

gg=MathPow(MarketInfo(OrderSymbol(),MODE_SWAPSHORT),a)*MathPow(OrderLots(),b)*MathPow(MarketInfo(OrderSymbol(),MODE_TICKVALUE),c)*MathPow(MarketInfo(OrderSymbol(),MODE_BID),d);

if(MathAbs(gg-OrderSwap())<raznica){raznica=MathAbs(gg-OrderSwap());a_=a;b_=b;c_=c;}

}}}}

Alert(" РЕАЛЬНЫЙ СВОП = "+OrderSwap()+"РАСЧЕТНЫЙ СВОП = "+gg+"\n a= "+a_+" b = "+b_+" c = "+c_+" d = "+d_);

}//if(OrderType()==OP_SELL){

}//if(OrderSwap()!=0){

}//for ( j=OrdersHistoryTotal( )-1; j>=OrdersHistoryTotal( )-21; j--) {

Non ho ottenuto risultati né per Alpari né per BROCO.

Cioè

MarketInfo(OrderSymbol(),MODE_SWAPLONG)

OrderLots()

MarketInfo(OrderSymbol(),MODE_TICKVALUE)

MarketInfo(OrderSymbol(),MODE_BID)

Non abbastanza per il calcolo dello swap.

Ci deve essere qualcos'altro, ma cos'è?

 
Grazie chief2000, ma hai scritto attraverso lo standard iHighest e iLowest, questo è il problema, e non sono in mql 5
 
alvish >> :
Grazie chief2000, ma hai scritto attraverso lo standard iHighest e iLowest, questo è il problema con mql 5.

Ora vedo che non ho letto attentamente la domanda.

Devo davvero descrivere tutto manualmente nella versione 5? Qui c'è qualcosa che non va - forse c'è un problema con la documentazione?

 
Ecco fatto.
 
vasya_vasya >> :

Per Alpari il tipo di calcolo dello swap è 0 e il mio è 1,


Vasya, perché ti preoccupi? Ti ho detto qui 'Swaps in mql4' molto brevemente

Posso entrare nei dettagli,

ci sono 4 varianti in totale

ognuno con una formula diversa.

 
kaisa писал(а) >>

Vasya, perché ti preoccupi? Ti ho detto qui 'Swaps in mql4' brevemente.

Posso entrare più in dettaglio se ne avete bisogno,

ci sono 4 varianti in totale

per ogni formula diversa

sì, posso avere le altre formule?