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

 

Sono seduto qui e non riesco a capire come implementare l'algoritmo.

Forse qualcuno può aiutare.

1. trovare l'inizio della giornata (ho fatto questo)

2. Trova il massimo della giornata (l'ho fatto)

3. ho bisogno di capire le barre che seguirebbero il primo frattale dopo l'attraversamento della MA dall'alto al basso dopo quel massimo.


Allego la figura.


 
komposter >> :

Invece di iRSI dovrebbe essere iCCI.

YEPRST...... è completamente fuori vista..... grazie, lo sistemeremo

 
luka >> :

Sono seduto qui e non riesco a capire come implementare l'algoritmo.

Forse qualcuno può aiutare.

3. È necessario calcolare le barre che seguiranno il primo frattale dopo aver attraversato la MA dall'alto in basso dopo questo massimo.

"calcola le barre che seguiranno..."

Scrivi semplicemente: "Voglio sapere dove andrà il prezzo dopo aver acceso il computer..." :-)))))

 
mukata >> :

"calcola le barre che seguiranno..."

Scrivi semplicemente: "Voglio sapere dove andrà il prezzo dopo aver acceso il computer..." :-)))))


non capisci.

queste barre sono già sul grafico. o diciamo che è la barra corrente. E se si adatta alle condizioni - è il bar che state cercando.

Questo è prima di tutto.

E in secondo luogo, perché preoccuparsi delle stronzate se non si capisce di cosa stiamo parlando?

 
Skydiver >> :

Potresti provare questo

OrderSelect(1, SELECT_BY_POS)

if(OrderOpenTime()!=0)

{

///необходимая операция

}

Ma questa è solo un'opzione se hai solo 1 ordine!

Quindi controlliamo solo se l'ordine è in sospeso?


L'idea è questa: insieme allo stop di un ordine, per esempio in acquisto, vengono impostati tre ordini pendenti

Voglio una condizione che uno di questi 3 ordini pendenti diventi un normale "ordine di lavoro"

 
luka >> :

non capisci.

Queste barre sono già sul grafico. o diciamo che questa è la barra corrente. E se soddisfa le condizioni, è la barra che stai cercando.

Questo è prima di tutto.

E in secondo luogo, perché perdi tempo se non capisci di cosa stiamo parlando?

"Calcola le barre che seguiranno il primo frattale dopo il... "Significa che lo seguiranno, non che "esistono già sulla carta"...

Ma se "E se soddisfa le condizioni - è la barra che stai cercando" - è un'altra questione. Descrivete le "Condizioni", qualcuno vi aiuterà.

Mi scuso per l'allagamento, mi è sfuggito.



 
mukata >> :

"calcola le barre che seguiranno il primo frattale dopo il... " Se seguono, significa che lo faranno, non se sono "già in classifica"...

Ma se "E se soddisfa le condizioni - è la barra che stai cercando" - è un'altra questione. Descrivete "Condizioni", qualcuno vi aiuterà.

Scusa per il diluvio, mi è sfuggito.



Oooh l'ho scritto esattamente così.

Non ho intenzione di puntare a trovare non so cosa, senza sapere dove o come.

Sono interessato a barre specifiche che già esistono. E per essere più precisi - il loro turno.

A proposito, l'ho già implementato, si scopre che non è così difficile :)

 
fima_ >> :

quindi controlliamo solo se l'ordine è in sospeso?


L'idea è questa: quando si ferma un ordine, per esempio su buy, vengono impostati tre ordini pendenti

Voglio una condizione che uno di questi 3 ordini pendenti diventi un normale "ordine di lavoro".

Quindi hai 3 ordini pendenti e se almeno 1 è scattato allora viene impostata qualche condizione?

se sì, allora è così

for(int cnt=0;cnt<OrdersTotal();cnt++) // последовательно проверяем все ордера

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0) ///время не равно 0 значит отложка сработала(или как писал Roger if(OrderType()<2) )
{
///необходимая операция
}
}

o hai 1 ordine aperto + 3 ordini pendenti?

allora puoi provare in questo modo

//в глобальных переменных

int tick[3];

//в функции start

//cначало записываем номера тикетов отложек в переменные

for(int cnt=0;cnt<OrdersTotal();cnt++) // последовательно проверяем все ордера

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0)

{

tick[cnt]=OrderTicket();

}

}

//а далее проверяем выполнился ли отложенный ордер


for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0)

{

for(int cnt2=0;cnt2<3;cnt++)

if(tick[cnt]==OrderTicket())

{

//необходимое условие

}

}

o usare una magia specifica per tutti gli ordini e se c'è un ordine in sospeso con questa magia, devi usarla in questo modo:

в глоб перем

int mag=12345;

в ф start

/// При открытии отложки укажите ему в качестве магика mag

///ну а далее идет поиск "бывшей" отложки по Magic

for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0&&OrderMagic()==Mag)

{

///необходимая операция

}

}

Non ho controllato il codice per eventuali errori!

 
Quale ordine restituisce la funzione OrderSelect(0,SELECT_BY_POS)? Quale è stato aperto per primo? Gli ordini non possono essere scambiati? (Non uso ordini pendenti)
 
AndreyK писал(а) >>
Quale ordine restituisce la funzione OrderSelect(0,SELECT_BY_POS)? Quale è stato aperto per primo? Gli ordini non possono essere scambiati? (Non uso ordini pendenti)

Giusto, qual è il primo. Questo è conveniente se si sa con certezza che si può avere un solo ordine aperto in linea di principio e si può evitare l'overshooting. Gli ordini non vengono scambiati, ma spostati al più piccolo quando il precedente viene chiuso.

Motivazione: