[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 650

 

Ho bisogno di aiuto con gli ordini di chiusura)) c'è un trade su ogni barra. Il tester apre molti, molti ordini, e il modo corretto è quello di inviare un ordine sulla barra corrente e chiuderlo sulla barra successiva.

Dimmi cosa c'è che non va...

 if (OrdersTotal()!=0)
   {
     OrderSelect(OrderTicket(),SELECT_BY_TICKET);
     if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
     if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);
   }
 

Non è così...

Chi ti ha insegnato a fare questo?

dov'è il ciclo dell'ordine?

cosa succede se l'ordine non è "select"?

dov'è la ricerca del tempo di apertura e chiusura dell'ultimo ordine ???? ?

dove è il divieto di continuare ad aprire ordini sulla stessa barra se tutti gli ordini sono chiusi secondo le condizioni GIUSTE (che non avete) ...

 
FAQ:

Non è così...

Chi ti ha insegnato a fare questo?

dov'è il ciclo dell'ordine?

cosa succede se l'ordine non è "select"?

dov'è la ricerca del tempo di apertura e chiusura dell'ultimo ordine ???? ?

dove è il divieto di continuare ad aprire ordini sulla stessa barra se tutti gli ordini sono chiusi secondo le condizioni GIUSTE (che non avete) ...

Perché il ciclo di sovrapposizione se c'è sempre un ordine aperto?
 
orb:

Ho bisogno di aiuto con gli ordini di chiusura)) c'è un trade su ogni barra. Il tester apre molti, molti ordini, e il modo corretto è quello di inviare un ordine sulla barra corrente e chiuderlo sulla barra successiva.

Dimmi cosa c'è che non va...

OrderSelect(OrderTicket(),SELECT_BY_TICKET);

"seleziona l'ordine con il biglietto dell'ordine attualmente selezionato" come è?

 

Poi...

Andate al thread di Igor Kim, digitate le funzioni di cui avete bisogno e usatele, e vedrete come farlo bene.

 
(amico, sono stupido).
 
7sintez:
Ciao a tutti, ragazzi..., un suggerimento per un novellino...! Voglio fare in modo che in certe condizioni solo un trade si apra sopra la candela!!! Ho un sacco di scambi che si aprono per qualche motivo... Non immediatamente, ma gradualmente... Cioè, diciamo su una candela di 5 minuti durante tutti i 5 minuti in cui le offerte sono aperte! E devo fare in modo che si apra un solo trade! E in modo che sulla candela successiva, in determinate condizioni, sia stato aperto anche un solo affare, ecc.


Grazie!

L'ho fatto in questo modo. Guardo gli ordini e se c'è un ordine aperto sulla coppia di valute, confronto il suo tempo di apertura con il tempo di apertura della barra corrente. Se il tempo dell'ordine è più lungo, esco. Se c'è una nuova barra, il suo tempo di apertura diventa più lungo del tempo dell'ordine che ha bloccato il commercio sulla barra precedente, e si può commerciare sulla nuova barra.
if (OrdersTotal()>0)
   {  for (i=OrdersTotal()-1; i>=0; i--)
      {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {  if (OrderSymbol()==Symbol() && OrderOpenTime()>iTime(NULL,0,0))
            {   Sleep(5*1000); return(0);
   }  }  }  }
 
Qwertee:

Tecnicamente è semplice: buysell !"="buy" - quindi il seguente Alert(1) non viene eseguito.

Ciò che la variabile buysel contiene in quel momento è scoperto dalla stampa: Print (buysell); dopo il primo allarme.

------------------------------------------------------------------------------------------------------------------------------------------------

Questo è il problema, se metto Print(buysell) invece di Alert(1) nel codice, allora buysell restituisce il valore buy, quindi qual è il problema?

Per essere sicuri del metodo di assordare uno scarafaggio strappandogli le zampe, bisogna strappargli tutte le zampe una per una, dando ogni volta il comando "Crawl" - questo è il destino di tutti gli sperimentatori. Provate a mettere qualcos'altro nel secondo comando Alert(), per esempio Alert ("1"), o Alert ("Mama, don't grieve!") - guardate cosa succede. ;)))
 
paladin80:
L'ho fatto in questo modo. Se c'è un ordine aperto sulla coppia di valute di interesse, confronto il suo tempo di apertura con il tempo di apertura della barra corrente. Se il tempo dell'ordine è più lungo, usciamo. Se c'è una nuova barra, il suo tempo di apertura è più lungo del tempo dell'ordine che ha bloccato la transazione sulla barra precedente e possiamo negoziare sulla nuova barra.
Se dite a un bambino piccolo di chiamare sua madre "papà", lo farà finché qualcuno "riderà di lui"...

Se si chiede a un nuovo arrivato, prendetelo subito GIUSTO! Costruzione:

if (OrdersTotal()>0)

Questo funzionerà fino a quando il trader non eseguirà diversi Expert Advisors sullo stesso conto, e questo succederà prima o poi! Il che significa, Un consigliere senza MAGIC è "come un uccello senza un'ala, come un uomo senza pasta"...

A proposito e

iTime(NULL,0,0)

è più corretto scriverlo come Time[0].
E dormire (5*1000) = 5 secondi. E cosa stiamo aspettando?

 
7sintez:
Ciao a tutti, ragazzi..., un consiglio per un novellino...! Voglio fare in modo che in certe condizioni solo un trade si apra sopra la candela!!! Ho un sacco di offerte che si aprono per qualche motivo... Non immediatamente, ma gradualmente... Cioè, diciamo su una candela di 5 minuti durante tutti i 5 minuti in cui le offerte sono aperte! E devo fare in modo che si apra un solo trade! E in modo che sulla candela successiva, in determinate condizioni, sia stato aperto anche un solo affare, ecc.


Grazie!

Confronta il tempo di apertura dell'ordine con l'inizio della candela a 5 minuti, ad esempio così:

if (iBarShift (NULL, 5, OrderOpenTime()) == iBarShift (NULL, 5, iTime (NULL, 5, 0))) return (0);
или
if (OrderOpenTime() >= iTime (NULL, 5, 0)) return (0);
Motivazione: