[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 435

 
semiromid:

Aiuto )

1. Rilevamento istantaneo di un'operazione appena aperta (non ordini pendenti) (se il sistema ha rilevato un ordine che non è stato aperto prima, continua sotto il numero 2)

2. Ogni compito viene eseguito solo una volta, solo per questo ordine.

Dopo l'apertura di un altro ordine, il sistema agisce nuovamente dal punto 1 al punto 2

Hai bisogno di trovare un ordine fatto manualmente dall'esterno?
 
sergeev:

Service-Settings-International

Interessante. e l'opzione è apparsa nelle impostazioni. questo non era il caso nelle versioni precedenti
 
bercut0077:
Buon pomeriggio, potreste dirmi come aggiungere una freccia (codice 241) a una linea di testo e far sì che il tutto risulti appropriato sullo schermo? Per esempio -- > trend = StringConcatenate("Direzione del trend: ", ? ? ? ?); Forse c'è un altro modo?


In alternativa, si potrebbero usare le "virgolette" e _underline_.

o

^ su

...

 
peshihod:
Hai bisogno di trovare un ordine fatto manualmente dall'esterno?


Sia manualmente che esternamente.

1.Моментальное определение вновь открывшегося торгового(не отложеных ордеров) ордера(Ордера открытого вручную и открытого спомощью советника) Если система определила ордер который рание не был открыт . то идет продолжение под номером 2.

2. Выполняеться какая то задача, всего 1-н раз,именно для этого ордера .

После того как еще открылся один ордер, система вновь действует с пункта 1 по пункт 2 .

 

inoltrata a

semiromid:

if ( OrderSelect (77777, SELECT_BY_TICKET) == true)

Come faccio a selezionare un ticker che non esiste ancora, ma che sarà il prossimo?

 

spostato a

semiromid:

Per favore aiutatemi.

Come posso aggiungere una variabile a questo commento "Error Occurred"?

OrderSend(Symbol(),OP_SELLSTOP,0.1,Ask-50*Point,3,Bid+150*Point,Bid-150*Point, "An error occurred ", 0);


TheXpert:

OrderSend(Symbol(),OP_SELLSTOP,0.1,Ask-50*Point,3,Bid+150*Point,Bid-150*Point, "An error occurred "+GetLastError(), 0);

 

Buon pomeriggio esperti, nell'indicatore mi interessa il valore ricevuto dall'EA

SetIndexBuffer(2, Cur_Trend) которое в зависимости от обстоятельств должно иметь значение 1 или -1, все работает нормально, но по прошествии минут 10-15, значение выходит за 
рамки и становится сразу равно 2147483647, в чем здесь проблема, уже не один день бьюсь... выручайте, заранее спасибо!

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LightBlue
#property indicator_color2 Magenta

double CrossUp[];
double CrossDown[];
double Cur_Trend[];
int CurrentTrend = 0;
int starttime = 0;

int init()
  {
   IndicatorBuffers(3); 
   SetIndexStyle(0, DRAW_ARROW, EMPTY);
   SetIndexArrow(0, 233);
   SetIndexBuffer(0, CrossUp);
   SetIndexStyle(1, DRAW_ARROW, EMPTY);
   SetIndexArrow(1, 234);
   SetIndexBuffer(1, CrossDown);
   SetIndexBuffer(2, Cur_Trend);
   starttime = TimeLocal(); 
   
   return(0);
  }


int deinit()
  {
   return(0);
  }


int start() {
   
   int limit, i, counter, loop;
   
   double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter;
   double Range, AvgRange;
   int counted_bars=IndicatorCounted();

   //---- check for possible errors
   if(counted_bars<0) return(-1);

   //---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;

   limit=Bars-counted_bars;

   loop = 0;
   for(i = 0; i <= limit; i++) {
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
      {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
      }
      Range=AvgRange/10;
       
      fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);
      fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
      fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1);

      slowerEMAnow = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, i);
      slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, i+1);
      slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, i-1);
      
      if ((fasterEMAnow > slowerEMAnow) && (fasterEMAprevious < slowerEMAprevious) && (fasterEMAafter > slowerEMAafter)) {
         CrossUp[i] = Low[i] - Range*0.5;
         if ((loop == 0) && (CurrentTrend != 1))  {
            CurrentTrend = 1;
            Cur_Trend[0]= CurrentTrend;
            }

         if (loop == 0)  {
            loop = 1;
            }
      }
      else if ((fasterEMAnow < slowerEMAnow) && (fasterEMAprevious > slowerEMAprevious) && (fasterEMAafter < slowerEMAafter)) {
            CrossDown[i] = High[i] + Range*0.5;
         if ((loop == 0) && (CurrentTrend != -1))  {
            CurrentTrend = -1;
            Cur_Trend[0]= CurrentTrend;
            }

         if (loop == 0)  {
            loop = 1;
            }
       }
   }
   return(0);
}
 

Ciao a tutti!

Un'altra persona ha deciso di tuffarsi nella programmazione EA)))

Si prega di consigliare come implementare la tempistica dell'EA, diciamo da 0:00 a 0:15

Grazie in anticipo))))

 

Benvenuti a un altro tuffo...

limitare il tempo di esecuzione del consulente site:mql4.com

 
semiromid:


Sia manualmente che dall'esterno.

1.Моментальное определение вновь открывшегося торгового(не отложеных ордеров) ордера(Ордера открытого вручную и открытого спомощью советника) Если система определила ордер который рание не был открыт . то идет продолжение под номером 2.

2. Выполняеться какая то задача, всего 1-н раз,именно для этого ордера .

После того как еще открылся один ордер, система вновь действует с пункта 1 по пункт 2 .


Cioè il momento dell'apertura non importa se è stato aperto un minuto fa o due?

Il punto 2 non è chiaro. È tutto un po' vago.

Iltempo di apertura può essere determinato da OrderOpenTime().

Motivazione: