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

 
Ekburg:

E allora?! Funziona?:)


Beh, sì. Puoi verificarlo tu stesso=) imposta l'importo sopra i 700 dollari e testalo=) 5 minuti di intervallo

Potresti anche modificarlo e farlo partire ogni notte da solo =)

 
SpikeOne:


Beh, sì. Puoi verificarlo tu stesso=) imposta l'importo sopra i 700 dollari e testalo=) 5 minuti di intervallo

Potresti anche modificarlo e farlo partire ogni notte da solo=)


Capisco))) Beh, buona fortuna allora nella conquista delle altezze redditizie))
 

Salve.

Se ho provato in questo modo, ho avuto un problema, ma non l'ho mai trovato... Se ho provato in questo modo, l'ordine metterà il valore della barra precedente come TakeProfit... Ho provato in diversi modi... L'ordine non vede mai la variabile e la salta... Di conseguenza, TP è impostato a 0 o 1 o 2...

provato tutto quello che mi è venuto in mente non funziona.... Il più non chiaro Se sostituisco "TP =" con Print scrive tutto... Aiuta un principiante.... Vi sarò molto grato.

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue);

_______________________________________________________________________________________

per (int i=1;i<=1;i++)

TP = ((Alto[i]- Basso[i])*3);

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue);

____________________________________________________________________________________________

 
PaMyC:

Salve.

Se ho provato in questo modo, ho avuto un problema, ma non l'ho mai trovato... Se ho provato in questo modo, l'ordine metterà il valore della barra precedente come TakeProfit... Ho provato in entrambi i modi... L'ordine non vede mai la variabile e la salta... Di conseguenza, TP è impostato a 0 o 1 o 2...

provato tutto quello che mi è venuto in mente non funziona.... Il più non chiaro Se sostituisco "TP =" con Print scrive tutto... Aiuta un principiante.... Vi sarò molto grato.

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue);

_______________________________________________________________________________________

per (int i=1;i<=1;i++)

TP = ((Alto[i]- Basso[i])*3);

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue);

____________________________________________________________________________________________



Il thp in OrderSend() non è il numero di punti, ma il prezzo al quale l'ordine sarà chiuso, e quando si imposta il thp è necessario ricordare il livello di congelamento (ogni DTZ ha i suoi problemi).

potrebbe essere utile, grazie Artem.

artmedia70 15.12.2013 22:34 #

C'è anche uno StopLevel non contabilizzato. Se non lo sapete, può essere uguale a zero e allora viene calcolato diversamente. In Alpari, per esempio, è sempre zero, ma ci sono dei limiti e vengono contati come spread*2

Quindi, prima definisci lo StopLevel:

A livello globale:

int level=0, sp=0;

Poi in start() :

   sp=MarketInfo(sy,MODE_SPREAD);
//-------------- Проверка StopLevel ---------------
   level=MarketInfo(sy,MODE_STOPLEVEL );           // Значение уровня установки стопов
   if (level==0) level=sp*2;

E poi già confrontare la dimensione dell'ordine di stop con il livello ricevuto e utilizzare i valori corretti calcolati per gli ordini di stop:

//+----------------------------------------------------------------------------+
   double pa=MarketInfo(Symbol(),MODE_ASK),  // цена Ask
          pb=MarketInfo(Symbol(),MODE_BID),  // цена Bid
          sl=0, tp=0;
   if(OrderType()==OP_BUY) {
      sl=NormalizeDouble(MathMin(pb-StopLoss*Point,pb-(level+1)*Point),Digits);
      tp=NormalizeDouble(MathMax(pb+TakeProfit*Point,pb+(level+1)*Point),Digits);
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
   if(OrderType()==OP_SELL) {
      sl=NormalizeDouble(MathMax(pa+StopLoss*Point,pa+(level+1)*Point),Digits());
      tp=NormalizeDouble(MathMin(pa-TakeProfit*Point,pa-(level+1)*Point),Digits());
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
//+----------------------------------------------------------------------------+

 

Non avevo solo oggetti nel mio codice, avevo anche un valore di prezzo...

Penso di aver capito cosa dice il tuo codice, ma come dovrebbe aiutare...?

 
PaMyC:

Non avevo solo oggetti nel mio codice, avevo anche un valore di prezzo...

Penso di aver capito cosa c'è scritto nel tuo codice, ma come dovrebbe aiutare...?


spiegare

dato:

Basso=1,3674

Alto=1,3811

Ask=1.3734

I vostri calcoli:

Ask +((High[1]-Low[1])*3)*Point = 1.3734+((1.3811-1.3674)*3)*Point = 1.3734+(0.0137*3)*Point = 1.3734+(0.0411)*Point = 1.3734+411 = 412.3734 - non mi sembra una buona quota)

basta rimuovere la moltiplicazione per il punto ed è tutto)

 
PaMyC:

Non avevo solo oggetti nel mio codice, avevo anche un valore di prezzo...

Credo di capire cosa dice il tuo codice, ma come dovrebbe aiutare...?


Puoi stampare i TR normalmente, ma quando fai un ordine, lo moltiplichi per un punto e incasini tutto...
 
PaMyC:

Non avevo solo oggetti nel mio codice, avevo anche un valore di prezzo...

Credo di capire cosa dice il tuo codice, ma come dovrebbe aiutare...?


O forse non è un numero grande, ma piuttosto un numero molto piccolo, ecco perché si imposta il TP a 0 o 1.
 
vadynik:
Puoi dirmi come fare un trailing virtuale, come sostituire OrderModify()?


Ho un blocco con trailing per un robot, sia normale che il mio specifico (per i movimenti di notizie)

Posso mandartelo, ma dipende da te).

 
Ekburg:

Tu stampi il TP normalmente, ma nel fare l'ordine tu, di nuovo, moltiplichi per il punto e incasini tutto...


Grazie mille ha aiutato), appena rimosso il punto e miracoli tutto fatto))))

Come pensavo l'errore era molto piccolo, ma così brutto...

Motivazione: