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

 
Frostr:

Aiutami a scrivere una condizione per aprire una posizione.

Non posso scrivere una condizione aggiuntiva per aprire una posizione secondo la mia idea.

Se chiudo una posizione con TP o SL dovrebbe riaprire con la posizione opposta.

Esempio: se una posizione Sell, diciamo SL, è chiusa, riaprirà una posizione Sell insieme ad essa e Buy

Ecco 2 condizioni dall'Expert Advisor:

condizione per comprare

if (BUY)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
if(NumberOfPositions(Symbol(),OP_BUY,Magic)<MaxOrders)OPENORDER ("Buy");
}

sell condition

if (SELL)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
if(NumberOfPositions(Symbol(),OP_SELL,Magic)<MaxOrders)OPENORDER ("Sell");
}

Chi è bravo in questo, per favore mi aiuti a scrivere condizioni aggiuntive.


Non capisco cosa vuoi. Vuoi aprire due posizioni opposte dopo aver chiuso una posizione? Allora forse sì. Ma puoi semplicemente dare l'AC sullo spread invece di aprire una posizione. Sarà lo stesso.
if (BUY)
   { 
   if(NumberOfPositions(Symbol(),OP_BUY,Magic)<MaxOrders)OPENORDER ("Buy");
      {
      if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
      OPENORDER ("Buy"); 
      if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
      OPENORDER ("Sell"); 
   }
}
if (SELL)
   {
   if(NumberOfPositions(Symbol(),OP_SELL,Magic)<MaxOrders) 
      if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0; 
      OPENORDER ("Sell");
      if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
      OPENORDER ("Buy"); 
   } 
}  
 
sss2019:

Buon pomeriggio. Puoi dirmi come risolvere un problema? Ci sono due punti, uno a sinistra della barra dello zero e uno a destra della barra dello zero. Ho bisogno di calcolare il numero di barre tra questi punti. Se prendiamo semplicemente gli intervalli di tempo, secondo il timeframe, il numero di barre non viene considerato correttamente quando si arriva a venerdì.

C'è un'altra soluzione?

Per favore aiutatemi a risolvere questo problema.
 
sss2019:
Si prega di aiutare a risolvere il problema

Trasferire i calcoli al terminale: creare una linea di tendenza per due punti, e poi(ObjectGetShiftByValue()) trovare l'offset di ogni punto rispetto alla 0a barra. E poi calcolare la mia differenza tra loro (o aggiungere modulo).
 
sss2019:
Si prega di aiutare a risolvere il problema


Spostare entrambi i punti a sinistra dello stesso numero di barre in modo che siano entrambi a sinistra della barra zero. Mi scuso, errore sbagliato, in modo che quello giusto sia sulla barra zero.
 
rigonich:

Spostare entrambi i punti a sinistra dello stesso numero di barre in modo che siano entrambi a sinistra della barra zero. Scusa, errore mio, quello giusto dovrebbe essere sulla barra dello zero.

P.S. Ho riflettuto un po' e mi sono reso conto che sto rispondendo alla domanda sbagliata. Il numero di barre a destra della barra zero non può essere determinato con precisione, perché non sono ancora presenti e, a parte il fine settimana, ci possono essere barre saltate (quando il prezzo non cambia durante una barra, non viene "disegnato"), quotazioni mancanti subito dopo l'apertura del mercato, ecc.
 
rigonich:

P.S. Ho pensato un po' e mi sono reso conto che stavo rispondendo alla domanda sbagliata. Il numero di barre a destra della barra zero non può essere determinato in linea di principio, perché non ci sono ancora, e oltre ai fine settimana ci possono essere barre saltate (quando il prezzo non cambia durante una barra, non viene "disegnato"), nessuna quotazione subito dopo l'apertura del mercato, ecc.
Sei sicuro di sapere cosa stai scrivendo? Lo script allegato calcola il punto destro della linea di tendenza (spostamento in barre rispetto allo 0°). Disegnate una linea di tendenza sul grafico e datele un nome, che inserirete nello script.
File:
 
TarasBY:
Sei sicuro di sapere cosa stai scrivendo? Lo script allegato calcola il punto destro della linea di tendenza (spostamento in barre rispetto allo 0°). Disegnate una linea di tendenza sul grafico e datele un nome, che inserirete nello script.


La domanda non diceva nulla sulla linea di tendenza. La domanda era -- determinare il numero di barre tra i due punti.
 
rigonich:

La domanda non riguardava una linea di tendenza, ma la domanda riguardava la determinazione del numero di barre tra due punti.
In questo caso la "linea di tendenza" è uno dei modi per risolvere questo problema. E mi riferivo alla tua affermazione:"Il numero di barre a destra del punto zero non può essere determinato con precisione in linea di principio...". - Vallo a dire agli sviluppatori! :))
 
TarasBY:
In questo caso attraverso la "linea di tendenza" è un modo per risolvere il suddetto problema. E mi riferisco alla tua affermazione:"Il numero di barre a destra del punto zero non può essere determinato con precisione in linea di principio...". - Vallo a dire agli sviluppatori! :))


Possiamo prevederli, ma non possiamo dire con certezza se ci saranno o meno, perché la barra zero è l'ultima barra aperta al momento e se la previsione sarà corretta o meno dipende da molti fattori. A proposito, usando solo la linea di tendenza nel caso in cui la barra zero è l'ultima barra di venerdì, si ottiene solo il numero sbagliato di barre tra i punti.

P.S. E prova a dire agli sviluppatori che sai esattamente quante barre si formeranno, per esempio, barre di un minuto dal momento attuale al giorno o anche all'ora.

 
Roman.:

Te l'ho già detto - non esiste! Solo per la storia dello strumento, si aprono tre grafici dello strumento testato su H1, H4 e giornalieri, si caricano gli indicatori utilizzati su ciascuno di essi, poi nel tester su H1 si avvia un expo per il test, utilizzando le letture di questi indicatori da diversi timeframe(come nel tutorial con M15 e H1), più avanti, quando si entra nel mercato, piazzando certi ordini, si ferma il test mettendo in pausa e si memorizza il TEMPO di entrata/uscita dal mercato, e poi coerentemente si passa alle schede precedentemente impostate dello strumento QUESTO testato, si riavvolge a periodo storico corrispondente pari al periodo di sospensione (pausa) nel tester e controllare i segnali dagli indicatori a diversi timeframe, passando a un grafico con H1, H4 e un grafico giornaliero, controllando la correttezza dell'expa nello Strategy Tester sull'attivazione dei criteri di trading! Questo è tutto. Non c'è altro modo!


Grazie Roman!

È così che ho fatto, speravo ci fosse un modo per renderlo più facile e più semplice))

Grazie

Motivazione: