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

 

Qualcuno può suggerire, installare il plugin GetTickerHistory in MT-4, funziona, ma il download non va, su Windows 7 x64, è possibile scaricare gli indici esterni in un altro modo.

Grazie in anticipo.

 
001:
C'è una funzione per chiudere una posizione in base al tempo.

La posizione si chiude, ma dà l'errore OrderClose 138 per ogni posizione

11:44:49 2000.01.10 07:00 Time+iLowest_old EURUSD,H1: open #1 sell 0.10 EURUSD at 1.02940 ok
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: close #1 sell 0.10 EURUSD at 1.02940 at price 1.02230
11:44:49 2000.01.11 07:00 Time+iLowest_old EURUSD,H1: open #2 sell 0.10 EURUSD a 1,02660 ok
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: close #2 sell 0.10 EURUSD a 1,02660 al prezzo 1,02890
11:44:49 2000.01.13 07:00 Time+iLowest_old EURUSD,H1: aperto #3 vendere 0,10 EURUSD a 1,02860 ok

11:44:49 2000.01.13 14:00 Time+iLowest_old EURUSD,H1: errore OrderClose 138 ,

Cosa può essere? La cosa più interessante è che tutto funziona in un altro EA.

Non avete l'elaborazione dei codici di ritorno del server commerciale. In altre parole, non si elaborano requotes e lo slippage è solo 3 punti mancanti:

int f=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,Red);

Oh, e le piccole cose:

Per chiudere in un ciclo inverso (altrimenti mancherà):

for(int i=OrdersTotal()-1; i>=0; i--)

Il controllo dovrebbe essere fatto sul tipo di ordine, altrimenti cercherà di chiudere anche gli ordini in sospeso:

if(OrderType()>1) continue;
 
pu6ka:

C'è una funzione chiamata SetIndexDrawBegin(). Ma ha una caratteristica speciale: conta da sinistra a destra. Comunque, in Init, impostate la linea SetIndexDrawBegin(0, Bars-p), e vedete se questo è quello che vi serve.
L'indicatore legge l'ultimo numero di barre, non ha problemi. Ho bisogno di fare una finestra del numero di barre in cui verrebbero contati questi movimenti e ad ogni barra la finestra si sposterebbe, escludendo l'ultima barra dell'ultimo calcolo, aggiungendone una nuova. Qualcosa come lo smoothing "iMAOnArray", ma lo smoothing non è adatto perché produce la media, e io ho bisogno della somma.
 
artmedia70:

Non avete l'elaborazione dei codici di ritorno del server commerciale. Cioè, non si elabora il requote, e manca lo slittamento di soli 3 punti:

Oh, e le piccole cose:

Chiudere in un ciclo inverso (altrimenti si perde):

Il controllo dovrebbe essere fatto sul tipo di ordine, altrimenti cercherà di chiudere anche gli ordini in sospeso:



Grazie mille! Lo proverò ora. Un'altra domanda. Il requote nel tester è rilevante? Nel mio tester non si chiude.
 
001:

Grazie mille! Ora farò una prova. Un'altra domanda. Il requota nel tester è rilevante? nel mio tester non si chiude.
Poi fai attenzione al prezzo nell'ordine di scambio. Sarà chiuso dal prezzo Bid e venduto dal prezzo Ask. Non c'è nessun controllo per il tipo di ordine e, quindi, nessuna scelta di prezzo - o Ask o Bid
 

Ho scaricato diversi indicatori RSI multi-timeframe quasi identici. Hanno tutti lo stesso problema. Ho impostato l'indicatore su un grafico a timeframe inferiore con il valore di qualche timeframe più vecchio. Nello Strategy Tester viene renderizzato bene su dati già caricati, ma se inizio il test smette di disegnare. Inoltre, il segnale è disegnato sul grafico reale, ma su ogni barra del grafico reale i valori della linea dell'indicatore sono diversi. Cioè il rendering dei dati già caricati è a scale, ma il rendering è diverso per i dati caricati in modalità tempo reale. Si prega di consigliare quali modifiche devono essere apportate affinché l'indicatore disegni la stessa scala sia sul grafico reale in modalità tempo reale che nel tester.

Il codice dell'indicatore è nel file allegato.

Ho un ottimo Expert Advisor per questo indicatore e vorrei ringraziarti per questo.

File:
mtf_rsi.mq4  3 kb
 
Ciao, l'EA dà l'errore 1 "Nessun errore ma nessun risultato conosciuto" quando si modifica.Errore 1
void ControlBuylimit(){
  for(int i=OrdersTotal(); i>=0; i--){
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
      if(OrderMagicNumber()==Magic){
        if(OrderSymbol()==Symbol()){
          if(OrderType()==OP_BUYLIMIT){
            if(OrderComment()=="MA_1"){
              if(OrderOpenPrice()!=ma1){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma1,Digits),NormalizeDouble(ma1,Digits)-StopLoss*Point,NormalizeDouble(ma1,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
            if(OrderComment()=="MA_2"){
              if(OrderOpenPrice()!=ma2){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma2,Digits),NormalizeDouble(ma2,Digits)-StopLoss*Point,NormalizeDouble(ma2,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
          }
        }
      }
      
    }
  }
}
 
Forexman77:
Non c'è nessun problema a far leggere all'indicatore l'ultimo numero di barre. Ho bisogno di fare una finestra di numero di barre in cui questi movimenti verrebbero contati e con ogni barra la finestra si sposterebbe, escludendo l'ultima barra nell'ultimo calcolo, aggiungendone una nuova. Qualcosa come lo smoothing "iMAOnArray", ma lo smoothing non è adatto, perché produce la media, e io ho bisogno della somma.

Lanciando questo indicatore su M1, man mano che appaiono nuove barre, le linee dell'alligatore a sinistra "vengono spazzate via". Ne hai bisogno?

File:
 
Example2:
Ciao, l'EA dà l'errore 1 "Nessun errore ma nessun risultato conosciuto" quando si modifica.

Molto probabilmente state modificando con il vecchio prezzo, che è già prescritto nell'ordine.
 
pu6ka:

Molto probabilmente modificare il vecchio prezzo che è già prescritto nel mandato.


Ma c'è un controllose(OrderOpenPrice()!=ma2)

Motivazione: