Domanda sul consulente multivaluta - pagina 10

 
rid >> :
Tuttavia, ho bisogno - allo stesso tempo - che la funzione trailing stop sia implementata per tutti i tick.

Un beneficio tangibile di una pesca a strascico può essere visto solo su un breve tratto a spese del montaggio.

Di regola, una rete a strascico grossa è altrettanto buona (a meno che non sia una rete a strascico da pipsing e scalping).

Ma si perdono i vantaggi dell'ottimizzazione del "prezzo di apertura" quando si usa una rete a strascico, il che è molto significativo.

Ultimamente ho rinunciato alla pesca a strascico su quasi tutti i TC.

La chiusura parziale/intera della posizione (eventualmente con inversione) tramite segnale di inversione funziona meglio.

 

E uso una rete a strascico. E se si regola la soglia di partenza, c'è un motivo...

extern string   ____________= "Параметры Трейлинг стопа";
extern bool UseTrailing = false;
extern int lMinProfit = 150;
extern int sMinProfit = 160;
extern int lTrailingStop = 50;
extern int sTrailingStop = 60;
extern int lTrailingStep = 5;
extern int sTrailingStep = 5;
//--------------------------------------------------------
int start()
  {
  if(Time[0] == prevtime)   return(0);
   prevtime = Time[0];//если появился новый бар , включаемся
//-------------------------------------------------------------------   
if ( UseTrailing) TrailPositions(); //трейлинг стоп

//--------------------------------------------------------------
... ... ... ... ... ... ... ... ... ... ... ... 
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
void TrailPositions() //пороговый трейлинг стоп
{  int Orders = OrdersTotal();
  for (int i=0; i< Orders; i++) {
    if (!(OrderSelect( i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol() && OrderMagicNumber()== Magic) continue; 
    if (OrderType() == OP_BUY) {
      if (Bid-OrderOpenPrice() > lMinProfit*Point) {
        if (OrderStopLoss() < Bid-( lTrailingStop+ lTrailingStep-1)*Point) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Bid- lTrailingStop*Point,
                                                    OrderTakeProfit(), 0, Blue);
        }}}
    if (OrderType() == OP_SELL) {
      if (OrderOpenPrice()-Ask > sMinProfit*Point) {
        if (OrderStopLoss() > Ask+( sTrailingStop+ sTrailingStep-1)*Point || 
                                                      OrderStopLoss() == 0) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Ask+ sTrailingStop*Point,
                                                     OrderTakeProfit(), 0, Blue);
        }}}}}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
 

In generale, non capisco che senso ha usare una rete a strascico Potikko?

 

Buon pomeriggio a tutti. Un altro problema.

Con l'indicatore.

Non può scrivere l'iCustom.

L'ho scritto così:

double ActivatorBLUE=iCustom(NULL,0,"HL Next Activator", ActivatorPeriod, useFullPeriods,0,1);
//синие уровни на 1 баре
double ActivatorRED=iCustom(NULL,0,"HL Next Activator", ActivatorPeriod, useFullPeriods, 1,1);
//красные уровни на 1 баре
Comment( ActivatorBLUE,"-", ActivatorRED);

Ma in entrambi i casi vengono restituiti solo i valori del livello blu. Non capisco perché! Dopo tutto, ho fornito numeri di buffer di 1 e 0 rispettivamente!

Anche nel commento vengono visualizzati gli stessi valori - livello blu

Questo è il modo in cui i buffer sono definiti nell'indicatore init :

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,159);
   SetIndexBuffer(0, SellActivator);//синий
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,159);
   SetIndexBuffer(1, BuyActivator);//красный
   SetIndexEmptyValue(1,0.0);
   if ( useFullPeriods!=0) useFullPeriods=1;
//----
   return(0);
  }

Suggerimento di Pozh.? Indicatore nel caricamento (l'autore dell'indicatore è Rosh).

File:
 
rid писал(а) >>

Buon pomeriggio a tutti. Un altro problema.

Con l'indicatore.

Non può scrivere iCustom.

Controllato, appare così:

2008.10.29 15:13:49 2008.10.28 12:51 testhl EURUSD,H1: 1.2395-0
2008.10.29 15:13:49 2008.10.28 12:51 testhl EURUSD,H1: 1.2395-0
2008.10.29 15:13:49 2008.10.28 12:51 testhl EURUSD,H1: 1.2395-0
2008.10.29 15:13:48 2008.10.28 05:52 testhl EURUSD,H1: 0-1.2547
....
2008.10.29 15:13:48 2008.10.28 05:51 testhl EURUSD,H1: 0-1.2547
2008.10.29 15:13:48 2008.10.28 05:51 testhl EURUSD,H1: 0-1.2547
2008.10.29 15:13:47 2008.10.27 18:49 testhl EURUSD,H1: 1.2414-1.2542
.....
2008.10.29 15:13:47 2008.10.27 18:49 testhl EURUSD,H1: 1.2414-1.2542
2008.10.29 15:13:46 2008.10.27 14:54 testhl EURUSD,H1: 0-1.2612

Non ho approfondito, ma sembra essere giusto, ho preso l'indicatore con parametri predefiniti, chiamata di valore con stringa

Print(iCustom(NULL,0,"HLdNextmActivator",0,1),"-",iCustom(NULL,0,"HLdNextmActivator", 1,1));
 

Grazie.

Questo è strano. Improvvisamente funziona per me. Non ha risolto il problema, non ha fatto nulla.

Ma stamattina non ha funzionato! Mi ci sono volute due ore. "Ti sto dicendo..."

Non è la prima volta che lo noto. Farò qualcosa di semplice su un tacchino semplice. All'improvviso non funziona più dall'inizio!

Per nessuna ragione apparente! Anche se la costruzione è la più semplice. Va bene, credo. Ci riproverò più tardi...

E poi lo accendo e guarda, funziona proprio come dovrebbe!

È come un miracolo...

L'ho fatto una volta con una parabolica. Ho impostato le condizioni per l'apertura di una posizione al cambiamento del "segno" della parabolica.

Era la condizione più primitiva. Non ha funzionato nel tester! Per due giorni, ho giurato fallo e ho cercato di scoprire cosa c'era di sbagliato. Non l'ho capito. Non riuscivo a capirlo, pensavo che l'avrei capito più tardi. Il giorno dopo l'ho acceso e... - ...funzionava come un orologio...

 
rid >> :

.............. allora ... Poi un giorno dopo l'ho acceso e... - Guardo, funziona come un orologio...

L'uomo viene dall'orologiaio.

- Questo si è rotto.

Il meccanico apre l'orologio e cade uno scarafaggio morto.

- Non funzionerà, però.

- Perché no?

- Il meccanico è morto, però.

 

Buon pomeriggio a tutti. Non riesco a risolvere il problema.

L'Expert Advisor piazza ordini in sospeso, per esempio OP_BUYSTOP - quattro ordini

OP_BUYSTOP magia 1

OP_BUYSTOP magia 2

OP_BUYSTOP magia 3

OP_BUYSTOP magic 4

Li colloca - a una data distanza dal prezzo e a un dato passo l'uno dall'altro.

Più in là. Se il prezzo è sceso, ho bisogno che gli ordini seguano il prezzo con il passo dato.

L'ho fatto. Non ho incontrato particolari difficoltà.

 

Tuttavia!

Non ho bisogno che tutti gli ordini si modifichino e si spostino dietro il prezzo, attirando l'attenzione del broker con richieste inutili al server.

Voglio che l'ordine più lontano dal prezzo corrente salti sopra tutti gli altri e diventi il più vicino!

E così via, in modo che con un ulteriore movimento di prezzo verso il basso gli ordini più lontani si avvicinerebbero costantemente al prezzo!

Ho pensato per diverse ore e non riesco a trovare una soluzione.

Non posso nemmeno avvicinarmi alla soluzione.

O forse c'è un riferimento a qualcosa di simile?

Ha trovato la funzione in un ramo di I. Kim. Ma come applicarli qui, non è ancora chiaro.

//----------------------------------------------------------------------------------------------------------------------------

Funzione GetIndexByTicket(). Questa funzione restituisce l'indice dell'ordine o della posizione del biglietto

La funzione IndexByTicket(). Questa funzione restituisce l'indice (il numero di indice nella lista generale degli ordini impostati o delle posizioni aperte) dell'ordine o della posizione all'interno del ticket

Funzione GetOrderOpenPrice(). Restituisce il prezzo impostato dell'ultimo ordine effettuato

 

Creare due array. Uno per numero di biglietto, il secondo per prezzo. Poi ordinate l'array per prezzo, spostando i numeri dei biglietti allo stesso tempo (senza interrompere la connessione). Quindi ad un'estremità della matrice ci sarà il prezzo più basso, all'altra il prezzo più alto. L'unica cosa che rimane è cambiare uno degli ordini più esterni.