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

 
artmedia70:
Vuoi il profitto totale di tutte le posizioni aperte, o vuoi mettere uno stop su ciascuna di esse quando raggiunge i 20 pip di profitto?
Se pensate che solo una posizione sarà aperta alla volta, allora dovreste impostare uno stop sul suo profitto
 

Ciao. Esiste una strategia di arbitraggio, è perfetta? Cioè è irreale perderci sopra o il prezzo non raggiunge sempre il livello giusto?

Grazie

 
su ogni stop quando un profitto raggiunge i 20 pip
 

Sto sbagliando di nuovo :(

Perché non si confronta?

if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(230),10,"Wingdings",SymbolSellColor);
      Print("Ошибка при вызове sig_nal201 1:",GetLastError());}
   else if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(228),10,"Wingdings",SymbolBuyColor);
      Print("Ошибка при вызове sig_nal201 2:",GetLastError());}
   else {ObjectSetText("sig_nal201",CharToStr(224),10,"Wingdings",SymbolBasisColor);
      Print("Ошибка при вызове sig_nal201 3:",GetLastError());}
Ho commentato, confronto 2 valori - disegna sempre l'ultimo...
 
profitinvesting:
che ognuno metta il proprio stop quando raggiunge 20 pips di profitto

Igor Kim ha una funzione che imposta uno stop a Breakeven per un dato numero di pip (può anche essere impostato):

Funzione MovingInWL()

 
Abzasc:

Sto sbagliando di nuovo :(

Perché non c'è paragone?

Ho commentato non necessario, confronto 2 valori - sempre l'ultimo è disegnato...

Interessante... ObjectFind(); restituisce il numero della sottofinestra del grafico dove si trova questo oggetto:

Cerca un oggetto con il nome specificato. La funzione restituisce l'indice della finestra a cui appartiene l'oggetto. Se fallisce, la funzione restituisce -1. Chiama la funzione GetLastError() per ottenere maggiori informazioni sull'errore. Le sottofinestre del grafico (se ci sono sottofinestre di indicatori nel grafico) sono numerate a partire da 1. La sottofinestra del grafico principale è sempre presente e ha l'indice 0.

E a cosa lo paragona?

(NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))

Trovo questa costruzione un po' strana. Perché normalizzare il numero di sottofinestra(int), inoltre, convertito in doppio , e dalla funzione StrToDouble()?

 
Abzasc:

Perché non c'è paragone?

Forse perché sto ottenendo il nome dell'oggetto, non il valore? Allora come posso ottenere il valore correttamente? Confuso, sembra.
 
artmedia70:

È interessante... ObjectFind(); restituisce il numero di sottofinestra del grafico

:) Anch'io stavo leggendo l'aiuto :)

Ci sono oggetti di testo, ho bisogno di confrontarli (numeri). Come?

Un indicatore disegna una tabella e l'altro deve calcolarla.

 
Abzasc:
Forse perché sto ottenendo il nome dell'oggetto, non il valore? Allora come posso ottenere il valore correttamente? Confuso, sembra.
State confrontando i numeri delle sottofinestre in cui sono disegnati gli oggetti. Se in uno, la funzione ObjectFind(); restituisce il numero di quella finestra e sarà lo stesso per i due valori da confrontare. Così si confrontano i numeri delle finestre. E molto probabilmente la stessa finestra con se stessa...
 
Abzasc:

:) Anch'io stavo leggendo l'aiuto :)

Ci sono oggetti di testo, ho bisogno di confrontarli (numeri). Come?

Numeri di cosa? Puoi essere più specifico?