Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1172

 
Ciao a tutti, qualcuno ha un file .exe per metatrader 4? Esattamente dagli sviluppatori, non collegati a nessun dc
 
a.lxrn:
Ciao a tutti, qualcuno ha un file .exe per metatrader 4? Esattamente dagli sviluppatori, non legati a nessun dc

il file non è legato, prendi metatrader.exe e metaeditorium.exe da qualsiasi dtz ed eseguilo da una cartella separata e imposta l'account. Non c'è un installatore 4ka sul sito web. Ma a cosa serve?

 
Igor Makanu:

Rilascia un indicatore frattale e un Expert Advisor di prova con questa funzione sul grafico

e ristampare i valori trovati passandoli alla mia funzioneMODE_UPPER e MODE_LOWER

È necessario ricordare il tempo della barra, alla comparsa di una nuova barra la numerazione cambierà, e il tempo di apertura della barra è sempre costante

Cioè, quando esegui il mio codice, ricorda il tempo della barra in cui il frattale è stato rilevato, poi eseguilo di nuovo, trova la barra e confronta il tempo della barra con quello ricordato - il tempo è diverso, significa un nuovo frattale

Ho fatto così:

if((Hour()>=9 && Minute()==15) && Hour()<23)
   {
    Fun_New_Bar();
    if(New_Bar)      
     {
     barfrup_1 = GetLastFractals(1,MODE_UPPER);Alert("barfrup_1 = ",barfrup_1);
     barfrup_2 = GetLastFractals(barfrup_1+1,MODE_UPPER);Alert("barfrup_2 = ",barfrup_2);
     if(barfrup_1==3)
     {
      secondtime1=iTime(NULL,0,barfrup_1);;Alert("secondtime1 = ",secondtime1);
      secondprice1=iHigh(NULL,0,barfrup_1);Alert("secondprice1 = ",secondprice1);
      firsttime1=iTime(NULL,0,barfrup_2);Alert("firsttime1 = ",firsttime1);
      firstprice1=iHigh(NULL,0,barfrup_2);Alert("firstprice1 = ",firstprice1);
      //рисуем трендовую линию High
      ObjectCreate("HighLine",OBJ_TREND,0,firsttime1,firstprice1,secondtime1,secondprice1);
     }}}

Disegna una linea. Se aggiungo:

if(barfrup_1>3)  ObjectsDeleteAll();

Cancella questa linea e basta. Cosa c'è che non va?

 
novichok2018:

Ho fatto così:

Disegna una linea. Se aggiungo:

cancella quella linea e basta. Cosa c'è che non va?

In uno dei tuoi post precedenti, ti sei lamentato di non aver ricevuto risposta. Ricordate quante volte vi è stato detto di leggere la documentazione e le domande elementari andranno via da sole. Questa domanda è di nuovo della serie "fumare la documentazione", fumare attentamente senza perdere una parola o anche una frase.

Pensi di avere un omonimo completo? Quindi completa che il tuo anno e la tua data di nascita corrispondano, per non parlare del tuo cognome, nome e patronimico.

ObjectCreate - Графические объекты - Справочник MQL4
ObjectCreate - Графические объекты - Справочник MQL4
  • docs.mql4.com
[in]  Индекс окна, в которое будет добавлен объект. Окно должно существовать (индекс окна должен быть большим или равным 0 и меньшим, чем WindowsTotal()), иначе функция возвратит false. При использовании функции на собственном графике осуществляется прямой доступ к графику (как это всегда было в MQL4) и возврат true означает успешное создание...
 
novichok2018:

Ho fatto così:

Disegna una linea. Se aggiungo:

cancella quella linea e basta. Cosa c'è che non va?

leggere il mio primo post, chi darà un nome diverso alla linea? o spostare la linea

abbozzato, rapidamente, disegna qualcosa, non capisco, provate ad usare questo codice per fare il vostro lavoro

//+------------------------------------------------------------------+
//|                                                 FractalTrend.mq4 |
//|                                                            IgorM |
//|                              https://www.mql5.com/ru/users/igorm |
//+------------------------------------------------------------------+
#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#include <ChartObjects\ChartObjectsLines.mqh>
CChartObjectTrend *UPLine, *DNLine;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   delete UPLine;
   delete DNLine;
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
   static datetime bar1 = 0;
   if(bar1 != Time[1])
   {
      delete UPLine;
      delete DNLine;
      int last_fractal = GetLastFractals(0, MODE_UPPER);
      int prev_fractal = GetLastFractals(last_fractal + 1, MODE_UPPER);
      UPLine = DrawTrendLine(MODE_UPPER, "UPLineFractal", prev_fractal, last_fractal, clrRed);
  
      last_fractal = GetLastFractals(0, MODE_LOWER);
      prev_fractal = GetLastFractals(last_fractal + 1, MODE_LOWER);
      DNLine = DrawTrendLine(MODE_LOWER, "DNLineFractal", prev_fractal, last_fractal, clrYellowGreen);
      bar1 = Time[1];
   }

}
//_______________________________________________________________________
CChartObjectTrend* DrawTrendLine(const int MODE, const string obj_name, const int bar2, const int bar1, const color clr)
{
   CChartObjectTrend *obj = new CChartObjectTrend;
   obj.Create(0, obj_name, 0, Time[bar2], MODE == MODE_UPPER ? High[bar2] : Low[bar2], Time[bar1], MODE == MODE_UPPER ? High[bar1] : Low[bar1]);
   obj.Color(clr);
   return obj;
}
//_______________________________________________________________________
int GetLastFractals(int bar, int mode) // bar - с какого бара начинать поиск, mode = MODE_UPPER или MODE_LOWER , результат № бара где найден фрактал
{
   int i = bar;
   while(i < Bars && iFractals(NULL, 0, mode, i) < _Point) i++;
   return(i);
}
//_______________________________________________________________________
 
Alexey Viktorov:

In uno dei tuoi post precedenti ti sei lamentato di non aver ricevuto una risposta. Ricordate quante volte siete stati mandati a leggere la documentazione e le domande elementari spariranno da sole. Questa domanda è di nuovo della serie "fumare la documentazione", fumare attentamente senza saltare le parole e ancora di più senza saltare le frasi.

Pensi di avere un omonimo completo? Così pieno che il tuo anno e la tua data di nascita sono gli stessi, per non parlare del tuo cognome, nome e patronimico.

Sì, ho capito da tempo dai tuoi primi "consigli" alle mie domande che tu sei il più duro qui, e abbassarsi a spiegare ciò che ti sembra elementare è "fuori luogo" per te. Ma non si può fare a meno di arricciare la coda. Dove se non nel thread dei nuovi arrivati!

 
Igor Makanu:

leggere il mio primo post, chi darà un nome diverso alla linea? o spostare la linea

abbozzato, frettolosamente, qualcosa disegna, non ha capito, provare questo codice per fare per il vostro compito

Grazie! Continuerò a scavare.

 
novichok2018:

Dai tuoi primi "consigli" alle mie domande, ho capito da tempo che sei il più duro qui, ed è "fuori luogo" per te abbassarti a spiegare ciò che ti sembra elementare. Ma non si può fare a meno di arricciare la coda. Dove se non in un thread per i nuovi arrivati!

Senti, non puoi essere così ignorante che anche queste parole

Nome unico dell'oggetto.

nella documentazione non può vedere o capire. Questo è esattamente quello che stavo cercando di dirvi. Ma, a quanto pare, senza successo. La prossima volta farò del mio meglio per dire tutto quello che penso di te in un sussurro. Alcune reclute rimangono reclute per sempre. Questo deve essere il tuo destino. Saw, Shura, saw...

 

Signori compagni@novichok2018 e@Alexey Viktorov, non vi commuovete troppo! Sono dannosi per un dialogo costruttivo! ....

)))))))))))

 
Igor Makanu:

leggere il mio primo post, chi darà un nome diverso alla linea? o spostare la linea

abbozzato, rapidamente, qualcosa disegna, non ha capito, prova questo codice per fare il tuo compito

Ha fatto così:

Fun_New_Bar();
    if(New_Bar)      
     {
     barfrup_1 = GetLastFractals(1,MODE_UPPER);Alert("barfrup_1 = ",barfrup_1);
     barfrup_2 = GetLastFractals(barfrup_1+1,MODE_UPPER);Alert("barfrup_2 = ",barfrup_2);
     if(barfrup_1==3)
     {
      secondtime1=iTime(NULL,0,barfrup_1);
      secondprice1=iHigh(NULL,0,barfrup_1);
      firsttime1=iTime(NULL,0,barfrup_2);
      firstprice1=iHigh(NULL,0,barfrup_2);
      //рисуем трендовую линию High
      ObjectCreate("HighLine",OBJ_TREND,0,firsttime1,firstprice1,secondtime1,secondprice1);
     }
      if(barfrup_1>3)  ObjectsDeleteAll();
      if(TimeCurrent()>secondtime1)
      {
      datetime Nsecondtime1=iTime(NULL,0,barfrup_1);
      double  Nsecondprice1=iHigh(NULL,0,barfrup_1);
      datetime Nfirsttime1=iTime(NULL,0,barfrup_2);
      double  Nfirstprice1=iHigh(NULL,0,barfrup_2);
      //рисуем новую трендовую линию High
      ObjectCreate("HighLine",OBJ_TREND,0,Nfirsttime1,Nfirstprice1,Nsecondtime1,Nsecondprice1);
      }
      }
 

Secondo me, è più semplice. Funziona bene sulla storia. Controllerò online la demo, penso che funzionerà anche. Funzionerà davvero dalla vostra esperienza?