[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 387

 
biragr:

Grazie per l'attenzione, ma non capisco la sua domanda. Puoi impostare la linea per qualsiasi data, e quando il grafico la raggiunge, l'EA si attiverà? O forse non capisco qualcosa, se non vi dispiace spiegarlo.
Ok, avete impostato la linea sul grafico giornaliero, e se fosse sull'orologio? Il tempo di apertura dell 'ordine sarà impostato dalla linea o strettamente impostato? È necessario impostare il programma per un mese con delle linee o è sufficiente un Expert Advisor seguendo il mio link?
[Deleted]  
kolyango:

Aiuto, per favore! L'indicatore https://www.mql5.com/ru/code/10067 deve essere convertito in un semplice EA funzionante (come esempio). Prinzip di azione:

Sulla coppia su cui verrà lanciato l'EA, non appena il valore è uguale a 0.9570, aprire un ordine di mercato per vendere 0.1 lotto con un numero maggiore (in modo che gli EA in diverse finestre non confondano gli ordini), Stop-Loss 100p, Take-Profit 200p.

Professionisti, non possiamo fare a meno di voi!



Aiuta un principiante!
 

kolyango:

Sulla coppia su cui verrà lanciato l'EA, non appena il valore è uguale a 0.9570, aprire un ordine di mercato per vendere 0.1 lotto con un numero maggiore (in modo che gli EA in finestre diverse non confondano gli ordini), Stop-Loss 100p, Take-Profit 200p.

Aiuto per un principiante!
Che senso ha scrivere un EA una tantum? Metti un ordine in sospeso e funzionerà come vuoi tu. E impostare gli EA sulle major, perché la pausa avrà zero major.
[Deleted]  
Reshetov:
Che senso ha scrivere un EA una tantum? Mettete una pausa e si attiverà come volete voi. E configurare gli EA per le major, perché la pausa avrà zero major.

Ho bisogno di capire come fare questo da un indicatore...
[Deleted]  

qual è il problema? Il problema è che l'ordine non sempre si apre quando la linea viene attraversata, cioè a volte lo fa e a volte no... Anche se funziona sullo stesso principio...

//+------------------------------------------------------------------+
//|                                                      Вайкофф.mq4 |
//|                                                   Sergey Kodolov |
//|                                              84232676421@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Sergey Kodolov"
#property link      "84232676421@mail.ru"



int total,sum,sumr;  
datetime TimeBarH, TimeBarL;

int Crossed (double nach, double kon, double cenaniz, double cenaverh)
{
   static int last_dir = 0;
   static int cur_dir = 0;
   
   if(nach<cenaverh && kon>cenaverh)cur_dir=1;
   if(nach>cenaniz && kon<cenaniz)cur_dir=2;
   
   if(cur_dir != last_dir)
   {
      last_dir=cur_dir;
      return(last_dir);
   }
   else
      return(0);
}


  
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }

  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
                     
bool NewBar = New(); //работаем только с нового бара

int volot = volotilnost(NewBar); //определяем волотильность
Hfr(NewBar,volot); //определяем фрактал верхний
Lfr(NewBar,volot); //определяем фрактал нижний

      double BuyLine, SellLine;
   
      BuyLine = ObjectGet("upline",OBJPROP_PRICE1);
      SellLine = ObjectGet("downline",OBJPROP_PRICE1);

int isCrossed = Crossed(Open[0],Bid,SellLine,BuyLine); //говорит о пересечении баром линии
OrderOpenFunction(isCrossed);



//----
   return(0);
  }
//+------------------------------------------------------------------+


bool New()
{
   static datetime lastbar = 0;
   datetime curbar = Time[0];
   //Print("lastbar = ",lastbar," curbar = ",curbar);
   if(lastbar!=curbar)
   {
      lastbar = curbar;
      //Print("ypa");
      return(true);
   }
   else
      return(false);
}

int volotilnost (bool NewBar)
{
   if(NewBar == true)
   {
      for(int i=0;i<=kolbar;i++)
      {
         sum = sum + MathAbs(High[i]-Low[i])*1000;
         //Print(sum);
      }
      sumr = sum/kolbar;
      Print(sumr);
      return(sumr);
   }   
}

void Hfr(bool NewBar, int volot)
{
   if(NewBar == true)
   {
      if(volot > kolbarv)
      {
         if(iHigh(Symbol(),TF,5)<iHigh(Symbol(),TF,4))
         {
            if(iHigh(Symbol(),TF,4)<iHigh(Symbol(),TF,3))
            {
               if(iHigh(Symbol(),TF,2)<iHigh(Symbol(),TF,3))
               {
                  if(iHigh(Symbol(),TF,1)<iHigh(Symbol(),TF,2))
                  {
                     ObjectDelete("upline");
                     ObjectCreate("upline",OBJ_HLINE,0,0,(iHigh(Symbol(),TF,3)));
                     TimeBarH = iTime(Symbol(),TF,3);
                  }
               }
            }
         }
      }   
   }   
}
         

void Lfr(bool NewBar, int volot)
{
   if(NewBar == true)
   {
      if(volot > kolbarv)
      {
         if(iLow(Symbol(),TF,5)>iLow(Symbol(),TF,4))
         {
            if(iLow(Symbol(),TF,4)>iLow(Symbol(),TF,3))
            {
               if(iLow(Symbol(),TF,2)>iLow(Symbol(),TF,3))
               {
                  if(iLow(Symbol(),TF,1)>iLow(Symbol(),TF,2))
                  {
                     ObjectDelete("downline");
                     ObjectCreate("downline",OBJ_HLINE,0,0,(iLow(Symbol(),TF,3)));
                     TimeBarL = iTime(Symbol(),TF,3);
                  }
               }
            }
         }
      }   
   }   
}

void OrderOpenFunction(int isCrossed)
{
   total = OrdersTotal();
   if(total<1)
   {
      if(isCrossed == 1)
      {
         OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,"Покупка",Magic,0,Green);
      }
      if(isCrossed == 2)
      {
         OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,"Продажа",Magic,0,Red);
      }
   }   
}
Penso che l'errore sia in isCrossed, ma non riesco a trovarlo lì... Ho cancellato una parte del codice (dove salvo alcuni dati negli array), perché sovraccarica il codice, ma se ne ho bisogno, sarò anche felice di condividerlo con voi
[Deleted]  
Buonasera, ho messo un ordine pendente bylimit, senza stop, errore 130 !!!! Cosa può essere? O mi sto sbagliando di nuovo? Per favore, consigliatemi!
 

Salve.

Potete dirmi come descrivere l'incrocio della linea principale e la linea di segnale dello stocastico?

[Deleted]  

Qualcosa del genere, nella mia mente

F=iStochastic( Symbol(), 0, 5, 3, 3, MODE_SMA, 1,MODE_MAIN , 0) ;
   SIGNAL=iStochastic( Symbol(), 0, 5, 3, 3, MODE_SMA, 1,MODE_SIGNAL , 0) ;
   if (F==SIGNAL) {Урра!!!!; }
[Deleted]  

un'altra domanda, perché il programma dice che l'oggetto esiste, quando in realtà non esiste (guardo solo il monitor e non vedo chiaramente l'oggetto)

void DrawLines()
{
   ObjectCreate("line1",OBJ_TREND,0,ArrayH[1],iHigh(Symbol(),TF,iBarShift(Symbol(),TF,ArrayH[1])),ArrayH[2],iHigh(Symbol(),TF,iBarShift(Symbol(),TF,ArrayH[2])));
   Print(GetLastError());
}

iBarShift(Symbol(),TF,ArrayH[1]) - dà il numero della barra, ho controllato tutto tramite Print(). Ma GetLastError mi dà l'errore 4200 - non capisco cosa sia cosa =)

 
kolyango:

Ho bisogno di capire come fare questo da un indicatore...

Non c'è modo di uscire dall'indicatore