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

 
hoz:

Ecco la funzione di trading che apre le posizioni:

Tutto chiaro e conciso. L'errore 130 continua a spuntare nel tester, anche se l'Expert Advisor funziona, ma l'errore 130 continua a spuntare. Qual è la ragione di questo?

Questa funzione utilizza funzioni di apertura delle posizioni, eccole:

Ho pensato che avesse a che fare con il livello di stop, ho aggiunto il controllo, ma non è lo stesso. L'ho rimosso per ora perché su Alpari questo livello è 0. Si prega di suggerire cosa deve essere corretto per evitare questo errore.


Penso che si tratti della funzione GetPriceToInput().
 
sasha1995:


 double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)];

come scrivere nel formato 1.30320 per EURUSD per esempio?

NormalizeDouble(...,Digits)
 
double max=High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)]; // trova il massimo delle prossime 32 barre
double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)]; // trova il minimo delle prossime 32 barre
double min=NormalizeDouble(min,Digits); //convertire in T/P

double max=NormalizeDouble(max,Digits); // convertire in T/P

Ticket=OrderSend (Symbol(), OP_BUY, lot, Ask, 3,0, max, "Buy");

Per favore ditemi qual è l'errore? non vuole creare take profit

Penso di aver capito che ihighest dà solo l'indice, ma come faccio a trovare il prezzo più alto?

 
sasha1995:
double max=High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)]; // trova il massimo delle prossime 32 barre
double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)]; // trova il minimo delle prossime 32 barre
double min=NormalizeDouble(min,Digits); //convertire in T/P

double max=NormalizeDouble(max,Digits); // convertire in T/P

Ticket=OrderSend (Symbol(), OP_BUY, lot, Ask, 3,0, max, "Buy");

Per favore ditemi qual è l'errore? non vuole creare take profit

Penso di aver capito che ihighest dà solo l'indice, ma come trovare il prezzo più alto?


Alto[i]

Se il prezzoHigh della barra zero è il più alto degli ultimi 32 (il prezzo sale), il valore di take profit può essere <= prezzo attuale.

 
rigonich:

Alto[i].

Non capisco ) per favore spiegatemi
 
sasha1995:
double max=High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)]; // trova il massimo delle prossime 32 barre
double min=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)]; // trova il minimo delle prossime 32 barre
double min=NormalizeDouble(min,Digits); //convertire in T/P

double max=NormalizeDouble(max,Digits); // convertire in T/P

Ticket=OrderSend (Symbol(), OP_BUY, lot, Ask, 3,0, max, "Buy");

Per favore ditemi qual è l'errore? non vuole creare take profit

Penso di aver capito che ihighest dà solo l'indice, ma come trovare il prezzo più alto?

Questo è un casino totale. Giusto:

 double max= NormalizeDouble (High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)], Digits); // найти максимум последующих 32 баров
 double min= NormalizeDouble (Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)], Digits); // найти минимум последующих 32 баров
 
sasha1995:

Non capisco ) Per favore, spiega

I prezzi alti per il grafico corrente sono memorizzati in un array -- serie temporale High[]
 
TarasBY:

È un casino totale. Giusto:


Non funziona (ancora nessuna uscita T/P

if(TimeToStr(TimeCurrent(),TIME_SECONDS) == "00:00:00"){ // если время сервера 00:00:00, тогда

 double max= NormalizeDouble (High[iHighest(NULL,PERIOD_M15,MODE_HIGH,32,0)], Digits);

double min= NormalizeDouble (Low[iLowest(NULL,PERIOD_M15,MODE_LOW,32,0)], Digits); // ????? ??????? ??????????? 32 ?????

 }

 int Ticket;

if (TimeToStr(TimeCurrent(),TIME_SECONDS)== "09:00:00"){ // если время сервера 09:00:00, тогда

   if (napravl > 0){ // если направление больше 0, то

      Ticket=OrderSend (Symbol(), OP_BUY, lot, Ask, 3,0,max, "Покупаю"); // купить и поставить Take profit через 35 пунктов Bid + 385 * Point

      Alert (GetLastError());

   }

   else {

      if (napravl < 0) { // иначе, если направление меньше 0, то

        Ticket=OrderSend (Symbol(), OP_SELL, lot, Bid, 3,0,min, "Продаю"); // продать и поставить Take profit через 35 пунктов Ask - 385 * Point

         Alert (GetLastError());

      }

   }

//----

   return(0);

  } 

 

Buon pomeriggio a tutti, mi interessa una domanda del genere, come posso lavorare con i tick, partendo da qualche evento, per esempio, confrontare il valore del primo tick dopo qualche evento e l'n-esimo, come ho capito durante la funzione start il prezzo, per esempio, Bid tutto il tempo viene sovrascritto, in più posso operare con il valore precedente, ma come operare con il pre-prime e così via, dove e come è scritto il tutto? Grazie per l'attenzione)

 
sasha1995:

Non funziona (il T/P non emette ancora

State tutti cospirando?! "Ancora niente T/P" - si può decifrare! Fallo:

Print ("max = ", max, " | min = ", min);

E mostra cosa c'è nel registro.

E non dimenticate che ci sono REGOLE che il DC definisce con la distanza di TP e SL dal prezzo corrente - queste regole devono essere OBBEDITE!!!!