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

 
Sergstuddek:
Consigliatemi gentilmente come lavorare con gli array, ho bisogno di selezionare i valori massimi e minimi di chiusura e apertura della barra, nell'intervallo di tempo da 1.00 a 10.00, ho provato a farlo, ma non è giusto. Dà fuori '[' - l'indice dell'array deve essere un intero C:\Program Files\InstaTrader\experts\Probase19 EUR-JPY.mq4 (61, 21)
Cosa c'è di sbagliato, come risolvere

L'avvertimento significa che l'indice dell'array deve essere un numero di tipo int. Dovete usare iClose() e iOpen(). Determinate il numero della barra il cui tempo di apertura è uguale a 1 ora e selezionate nel ciclo dalle 10 barre successive quelle che volete.


 
Ekburg:

È questo il punto: lì è tutto normale! Ho messo delle stampanti a questo scopo, in modo che durante il test potessi tracciare quali valori vengono inviati alla funzione di modifica, lì è tutto normale, lo stop è diverso, non viene lanciato nulla di extra, tutto rientra nei limiti consentiti dal server, e gli avversari nel codice sopra non permettono di inviare gli stessi valori.

Non lo so. A me dopo aver messo il controllo direttamente prima di OrderModify() dopo OrderSelect(), l'errore 1 ha cessato di dare, e anche prima ha costantemente lampeggiato.
 
rigonich:

L'avvertimento significa che l'indice dell'array deve essere un numero di tipo int. Dovete usare le funzioni iClose() e iOpen(). Determinate il numero della barra il cui tempo di apertura è 1 h e selezionate nel ciclo le 10 barre successive che volete.
Grazie per la risposta. Teoricamente capisco quello che vuoi dire, ma per essere onesto non riesco a capire come farlo in pratica, forse hai qualche esempio.
 
Desead:

Necessità di normalizzare il grafico dei prezzi, qualsiasi coppia di valute di vostra scelta. Ne ho bisogno per un indicatore. Ho provato a dividere il valore attuale per quello precedente - ottengo una specie di oscillatore intorno a 1. Mi è venuta l'idea di convertire il grafico da valori assoluti a valori relativi, cioè in questo caso potrò vedere la variazione percentuale della quotazione. È stato implementato. È già meglio e praticamente ciò di cui abbiamo bisogno. Tuttavia, il mio desiderio finale è quello di normalizzare le citazioni nell'intervallo [0:1] .A proposito, ecco quello che mi serve ma in borghese - vorrei lo stesso in russo: http://people.revoledu.com/kardi/tutorial/Similarity/Normalization.html

Mi sono già stancato di lottare con questo. Non riesco a cancellare tutti gli ordini in sospeso normalmente, non riesco proprio a capire come funziona:

Ho anche aggiunto al ciclo FOR WHILE gli ordini cancellati sono ancora lì, ma non li ho ancora cancellati. Ho molti ordini pendenti da cancellare, cioè circa 20, forse è qualcosa di complicato?


alla tua prima domanda - guarda la stocastica
 
Desead:

Necessità di normalizzare il grafico dei prezzi, qualsiasi coppia di valute di vostra scelta. Ne ho bisogno per un indicatore. Ho provato a dividere il valore attuale per quello precedente - ottengo una specie di oscillatore intorno a 1. Mi è venuta l'idea di convertire il grafico da valori assoluti a valori relativi, cioè in questo caso potrò vedere la variazione percentuale della quotazione. È stato implementato. È già meglio e praticamente ciò di cui abbiamo bisogno. Tuttavia, il mio desiderio finale è quello di normalizzare le citazioni nell'intervallo [0:1] .A proposito, ecco quello che mi serve ma in borghese - vorrei lo stesso in russo: http://people.revoledu.com/kardi/tutorial/Similarity/Normalization.html

Mi sono già stancato di lottare con questo. Non riesco a cancellare tutti gli ordini in sospeso normalmente, non riesco proprio a capire come funziona:

Ho anche aggiunto al ciclo FOR WHILE gli ordini cancellati sono ancora lì, ma non li ho ancora cancellati. Ho molti ordini in sospeso da cancellare, cioè circa 20, forse è qualcosa di complicato?


Ho già provato a mettere e cancellare tutti gli ordini pendenti nello stesso modo in cui ho già fatto, ma non voglio farlo in nessun altro modo. Se qualcuno lo sa, può dirmi perché?
 
Sergstuddek:
La gente gentilmente consiglia come lavorare con gli array, ho bisogno di selezionare i valori massimi e minimi della chiusura e dell'apertura della barra, nell'intervallo di tempo da 1.00 a 10.00, ho provato a farlo, ma non è così. Fornisce '[' - l'indice dell'array deve essere un intero C:\Program Files\InstaTrader\experts\Profiler19 EUR-JPY.mq4 (61, 21)
Cosa c'è di sbagliato, come risolvere il problema

L'ho rifatto come segue

int MAX()
{
if (Hour()==10)
        {
      
        for(i=0; i<=9; i++)
        double MAX1 = High [iHighest(Symbol(), PERIOD_H1,MODE_CLOSE,i,0)];
        }
        return(MAX1);
        
}

Non ricevo errori, ma il prezzo non funziona, o meglio non funziona correttamente, qual è il problema?

 
Sergstuddek:

L'ho ridisegnato come segue

Non dà più errori, ma non rileva il prezzo, o meglio lo fa, ma non correttamente, qual è il problema?

Cercherà l'indice della barra con il prezzo massimo nelle ultime 9 barre, a condizione che si esegua il programma alle ore 10. Hour() è l'ora di inizio del programma (ora del server).

P.S. Più precisamente, non l'indice, ma il prezzo massimo (High) di quella barra.

File:
 

Si prega di aiutare, non appena ho messo altri sl e tp non funziona l'acquisto, apre il lotto solo con la vendita.

#define MAGIC 1234
#define IDENT "mo_bidir"

extern int lots = 1;
extern int stop_loss = 76; //
extern int take_profit = 750; //
extern int steps = 5;// Шаг отложенных ордеров

int start(){

if (OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lots ,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Blue);
OrderSend(Symbol(), OP_SELL, lots ,Bid, 3, Bid + take_profit * Point, Ask - take_profit * Point, IDENT, MAGIC, 0, Red);
OrderSend(Symbol(), OP_BUYSTOP, 0.05*lots,Ask+steps*Point, 3, Ask + stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Blue);
OrderSend(Symbol(), OP_SELLSTOP, 0.05*lots,Bid-steps*Point, 3, Bid - take_profit * Point, Ask - take_profit * Point, IDENT, MAGIC, 0, Red);
}
return(0);
} 
 
samaelfess:

Si prega di aiutare, non appena ho messo l'altro sl e tp non funziona l'acquisto, si apre il lotto solo con la vendita.



Hai Bid + stop_loss invece di Bid + take_profit. E in sospeso per OP_BUYSTOP Ask + stop_loss, invece diAsk - stop_loss e per OP_SELLSTOP -- Bid - take_profit invece di Bid + take_profit.

E tutti i prezzi non sono normalizzati.

P.S. Mi chiedo se funziona con non altri sl e tp?

 
Grazie, farò più attenzione.