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

 
simpleton:

Se sono necessari calcoli diversi dal prezzo totale della posizione, si possono "restituire" i valori di S1 e S2 alla funzione chiamata passando le variabili stesse per riferimento, e restituire il segno di errore dalla funzione. Cioè, il prototipo della funzione chiamata potrebbe essere così: "bool fun(double &S1, double &S2);". La funzione chiamante avvia le variabili, le passa a fun() e, se fun() ritorna vero, usa i valori delle variabili passate (che possono avere nomi diversi) come S1 e S2.

Grazie! Roger. Solo che con l'errore su OrderSelect, non è chiaro come fermarsi se non percontinuare.

Cancellato il post in ritardo, ho fatto quasi lo stesso come descritto.

double CenaUsrednenija(const int type,const int Magic){
double nn=0,bb=0;
 double factb=0;
  int total=OrdersTotal();

for(int i=total-1; i>=0; i--)
  {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;  

   if(OrderSelect(i,SELECT_BY_POS))
     {
      if(OrderSymbol()==Symbol())
        {
         if(OrderType()==type && OrderMagicNumber()==Magic)
           {
            double op=OrderOpenPrice();
            double llot=OrderLots();
            double itog=op*llot;
            bb=bb+itog;
            nn=nn+llot;
            factb=NormalizeDouble(bb/nn,_Digits);
        //  Print("  type= ",type," Цена открытия= ",op, " Лот= ",llot, " itog=op*llot= ",itog, " factb=bb/nn= ",factb);
        
           }
        }
     }
  }  return(factb);  
}  
 

Non posso scrivere una funzione come questa.

- Se un ordine SELL è in perdita di -1000 pip. poi apriamo lo stesso ordine SELL a 1000 punti dal primo. Se un altro -1000p, apriamo un altro ordine SELL, ecc.

 
Top2n:

Non posso scrivere una funzione come questa.

- Se un ordine SELL è in perdita di -1000 pip. poi apriamo lo stesso ordine SELL a 1000 punti dal primo. Se un altro -1000p, apriamo un altro ordine SELL, ecc.


Qual è il problema qui? Si seleziona l' ordine OrderSelect necessario, per esempio, sul biglietto, si confronta il profitto su di esso con l'ordine OrderProfit, e poi si invia una richiesta per aprire un altro OrderSend.
 
Top2n:

Non posso scrivere una funzione come questa.

- Se un ordine SELL è in perdita di -1000 pip. poi apriamo lo stesso ordine SELL a 1000 punti dal primo. Se un altro -1000p, apriamo un altro ordine SELL, ecc.


Secondo questa condizione, il secondo ordine deve essere aperto al prezzo corrente che è circa 1000 punti di distanza dal prezzo di apertura del primo ordine, quindi non c'è niente di difficile - un semplice ordine per aprire una nuova posizione.
 
Signori, qualcuno può dirmi dove trovare un archivio di citazioni di migliore qualità.
 
Top2n:
Signori, qualcuno può dirmi dove trovare un archivio di citazioni di migliore qualità.

Scarichiamo Tickstory e lo usiamo per scaricare i tick da Dukascopia, poi possiamo esportarli su MT4, ma è solo temporaneo, il terminale li sovrascriverà con i propri file. Cioè, è solo per il tester, quindi la qualità della simulazione è del 99,9%.
 
evillive:

Scarichi Tickstory e lo usi per scaricare i tick da Dukascopy, poi puoi esportarli su MT4, ma questo è solo temporaneo, il terminale li sovrascriverà con i propri file. Cioè, è solo per il tester, in modo che la qualità della simulazione sia del 99,9%.

Sì, l'argomento, grazie mille).
 

Non riesco a capire cosa c'è di sbagliato in WindowTimeOnDropped(). Nessun valore quando si resetta il grafico (tutto il tempo =0). Ho scritto un po' di codice per controllarlo.


//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters

double xBuffer[];
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,xBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="Mouse";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//----
   return(0);
  }

int start()
  {
  datetime Mouse=WindowTimeOnDropped();
  Alert(" Mouse= ",Mouse);
  xBuffer[0]=Mouse;
  return(0);
  }
 
Colleghi, consigliate come ignorare l'evento onChartEvent(...) in EA?

Il problema è che se si cambia il timeframe quando l'EA è in esecuzione, l'EA si reinizializza e riapre i trade. A loro volta, le transazioni che sono state aperte in precedenza rimangono "incustodite".

Come lottare? Devo ridisegnare il grafico per miracolo, ma ha bisogno di un EA precedentemente inizializzato.

 
intrade:
Colleghi, consigliate come ignorare l'evento onChartEvent(...) in EA?

Il problema è che se si cambia il timeframe quando l'EA è in esecuzione, l'EA si reinizializza e riapre i trade. A loro volta, le transazioni che sono state aperte in precedenza rimangono "incustodite".

Come lottare? Devo ridisegnare il grafico per miracolo, ma ha bisogno di un EA precedentemente inizializzato.


Scrivere le esatte condizioni di apertura senza ambiguità!