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

 
NTH >> :

Salve.

Perché lo stop non si trasferisce per le posizioni di acquisto? Per la vendita tutto funziona.

se(OrdiniTotali()>0)
{
if(Bid==bubuy||Bid==busell)
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(), 0, Blue);
}
ritorno(0);
}

originariamente cosa è if(Bid==buy||Bid==busell),....??????? potete dirlo.

e probabilmente la condizione seguente dovrebbe essere:

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*numero di punti,OrderTakeProfit(),0,Blue)

 

if(Bid==bubuy||Bid==busell)

Il doppio bubuy è un livello al cui contatto lo stop della posizione di acquisto viene spostato al livello di apertura di questa posizione.

Il doppio busell è il livello per una posizione di vendita.

 
NTH >> :

if(Bid==bubuy||Bid==busell)

Il doppio bubuy è un livello al cui contatto lo stop della posizione di acquisto viene spostato al livello di apertura di questa posizione.

Il doppio busell è un livello per una posizione di vendita.

controllare comunque le condizioni.

 

L'ho capito

if(OrdersTotal()>0)
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
if(OrderStopLoss()==OrderOpenPrice()) return(0);
if (OrderType()==OP_BUY) if(Bid>=buy) OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(), 0, Blue);
if(OrderType()==OP_SELL) if(Bid<=busell) OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(), 0, Red);
return(0);
}

E un'altra domanda, se i dati sono presi da diversi TF, è necessario che l'EA apra tutti questi grafici (in diversi) quando lavora online, o posso prendere solo un grafico e impostare l'EA su di esso? Supponiamo che l'EA lavori su EUR/OD e prenda i dati dai frame H1 H4 D1 per l'analisi, ed esso (l'EA) è collegato a H1, ho bisogno di aprire in altri grafici H4 e D1?

 
NTH >> :

L'ho capito

se(OrdiniTotali()>0)
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
se(OrderStopLoss()==OrderOpenPrice()) return(0);
if(OrderType()==OP_BUY) if(Bid>=buy) OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(), 0, Blue);
if (OrderType()==OP_SELL) if(Bid<=busell) OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(), 0, Red);
ritorno(0);
}

E un'altra domanda, se il mio EA prende i dati da diversi TF, ho bisogno che tutti questi TF siano aperti (in diversi grafici) quando l'EA lavora online o posso prendere solo un grafico e impostare EA su di esso? Supponiamo che l'EA lavori su EUR/OD e prenda i dati dai frame H1 H4 D1 per l'analisi, e attaccato a H1, ha bisogno di aprire in altri grafici H4 e D1?

Non c'è bisogno di aprire altri grafici con timeframes... L'EA calcolerà tutti i dati dai timeframe stessi.

 

Ciao, potresti dirmi come risolvere l'indicatore https://www.mql5.com/ru/code/7361.

La questione è che il segnale appare sulla barra corrente, e con ogni tick suona un segnale sonoro. Vorrei avere un suono dopo la chiusura della barra, se il segnale non viene annullato.

//+------------------------------------------------------------------+
//| SilverTrend_Signal.mq4                                           |
//| Ramdass - Conversion only                                        |
//+------------------------------------------------------------------+
#property copyright "SilverTrend  rewritten by CrazyChart"
#property link      "http://viac.ru/"
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Aqua
#property indicator_color2 Violet
//---- input parameters
extern int RISK=3;
extern int CountBars=350;
extern int NumberofAlerts=2;
int SSP=9;
int counter=0;
//---- buffers
double val1[];
double val2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,233);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,234);
   SetIndexBuffer(0, val1);
   SetIndexBuffer(1, val2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| SilverTrend_Signal                                               |
//+------------------------------------------------------------------+
int start()
  {
   if ( CountBars>=Bars) CountBars=Bars;
   SetIndexDrawBegin(0,Bars- CountBars+ SSP);
   SetIndexDrawBegin(1,Bars- CountBars+ SSP);
   int i, shift, counted_bars=IndicatorCounted();
   int i1, i2, K;
   double Range, AvgRange, smin, smax, SsMax, SsMin, price;
   bool uptrend, old;
//----
   if(Bars<= SSP+1) return(0);
//---- initial zero
   if( counted_bars< SSP+1)
     {
      for( i=1; i<= SSP; i++) val1[ CountBars- i]=0.0;
      for( i=1; i<= SSP; i++) val2[ CountBars- i]=0.0;
     }
//----
   K=33- RISK;
   for( shift= CountBars- SSP; shift>=0; shift--)
     {
      Range=0;
      AvgRange=0;
      for( i1= shift; i1<= shift+ SSP; i1++)
        { AvgRange= AvgRange+MathAbs(High[ i1]-Low[ i1]);
        }
      Range= AvgRange/( SSP+1);
//----
      SsMax=High[ shift]; SsMin=Low[ shift];
      for( i2= shift; i2<= shift+ SSP-1; i2++)
        {
         price=High[ i2];
         if( SsMax< price) SsMax= price;
         price=Low[ i2];
         if( SsMin>= price)  SsMin= price;
        }
      smin= SsMin+( SsMax- SsMin)* K/100;
      smax= SsMax-( SsMax- SsMin)* K/100;
      val1[ shift]=0;
      val2[ shift]=0;
      if (Close[ shift]< smin)
        {
         uptrend=false;
        }
      if (Close[ shift]> smax)
        {
         uptrend=true;
        }
      if ( uptrend!= old && uptrend==true)
        {
         val1[ shift]=Low[ shift]- Range*0.5;
         counter=0;
         if ( shift==0 && counter<= NumberofAlerts)
           {
            Alert("Silver Trend ",Period()," ",Symbol()," BUY");
            counter= counter+1;
           }
        }
      if ( uptrend!= old && uptrend==false)
        {
         counter=0;
         val2[ shift]=High[ shift]+ Range*0.5;
         if ( shift==0 && counter<= NumberofAlerts)
           {
            Alert("Silver Trend ",Period()," ",Symbol()," SELL");
            counter= counter+1;
           }
        }
      Comment( shift);
      old= uptrend;
     }
   return(0);
  }
//+------------------------------------------------------------------+
 
La gente ha incontrato un esperto Martingail due mani 2.07 esattamente 2.07 o solo 2.7 non può giustamente scritto il nome, come è scaricato da un sito insieme a un mucchio di altri testato 2 settimana e ha fatto più di 100% due settimane konestno poco ma non ho avuto il tempo di testarlo ulteriormente perché ho dovuto farm l'unità. Maggio che ha incontrato?
 
Ho anche una richiesta di mettere in questo profitto punta, non capisco, per favore.
File:
 

Saluti a tutti!


Aiutatemi a risolvere il seguente problema.

C'è un indicatore personalizzato che disegna segnali sul grafico.

I segnali sono dati con un ritardo, che sto cercando di determinare per ogni segnale e scrivere accanto ad esso sul grafico.

Per l'inizio ho deciso di provare ad emettere il tempo di apparizione del segnale:

ObjectCreate(StringConcatenate("Text_",IndicatorNumber,"_",i), OBJ_TEXT, 0, "cur_time",short[i] + 0.0020);
ObjectSetText(StringConcatenate("Text_",IndicatorNumber,"_",i), TimeToStr(CurTime(),TIME_SECONDS), 10, "Arial", Lime);

Ma il codice non funziona, non posso vedere il tempo.

Cosa sto facendo di sbagliato?

 

Salve.

Ho scaricato con "Quote Archive" le quotazioni di sterlina/dollaro (M1) dal 1999 in formato DAT, come posso convertire questi dati per i test?