Disegnare un quadrato o un rettangolo. Davvero bisogno di aiuto... - pagina 8

 
evillive:

Ho dato un esempio di uno script funzionante, dobbiamo aggiungervi frecce e linee di tendenza, e rifarlo per H4 invece che per il mese. Tutto quello che dovete fare è allontanarvi dal concetto di indicatore e guardare il problema da un'altra angolazione.

Questa battuta è stata presa dalla sceneggiatura. Lo script è molto utile. Grazie.

Lalinea di tendenza è tracciata per tutto il periodo ma in linea retta. Ho bisogno che vada da alta a alta. E "recinto" sia.

        ObjectCreate    (0,Name_Obj + " V_Line" + DoubleToStr(i,0), OBJ_TREND, 0, t_Line, mqlRates[0].high, t_Line,mqlRates[0].low);
 
AlexeyVik:

Leggere l'aiuto è ciò che ti aiuta a imparare il linguaggio di programmazione. Poi, se non capite qualcosa nella guida, potete fare domande.

Come si può consigliare una persona che non ha letto la documentazione e non ha idea di dove mettere SetIndexStyle(0, DRAW_SECTION);; e lo inserisce in OnCalculate con sconcerto?

Nessuna esperienza, ecco perché si fanno errori stupidi.

Come dice Kiyosaki. Prima fai un errore e poi analizzalo. Per capire cosa è stato fatto di sbagliato.

 
Alex_Profit:

Questa battuta è stata presa dalla sceneggiatura. Lo script è molto utile. Grazie.

La linea di tendenza è disegnata per tutto il periodo ma in linea retta. Si vuole che vada da alto a alto. "Recinto".

Pensa, testa, ti darò una torta ))))

Qui è suOBJ_TRENDe ha bisogno di leggere l'aiuto. Quale linea si dovrebbe ottenere se il tempo in entrambi i punti è lo stesso?

E no, questa non è la mia sceneggiatura.

 
evillive:

Questo è l'OBJ_TRENDe l'aiuto dovrebbe essere letto, come e cosa c' è.Quale linea si dovrebbe ottenere se il tempo in entrambi i punti è lo stesso?

Una linea retta, rispettivamente.

Non capisco come trovare il 2° punto di ancoraggio. Dove inserirlo è anche chiaro.

 

Grazie anche per questo. Sei stato di grande aiuto. È solo un peccato che non sono riuscito a capire tutto, non è rimasto molto da fare.

Comunque, grazie per la vostra risposta. Abbiate più profitti e buon fine settimana.

 

Buon pomeriggio a tutti. Chiedo aiuto agli esperti. Ho questo codice.

Si prega di consigliare cosa dovrebbe essere corretto per garantire che la linea di tendenza sia disegnata sui massimi del TF giornaliero.

Ne ho davvero bisogno. Per favore, aiutatemi.

#property indicator_chart_window
#property strict
extern int   limit = 30;
extern bool  Sho_bars = true;
string txt = "TRADE_";
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
int deinit()
  {
   GetDellName (txt);
   Comment("");
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int limits;
   int counted_bars=IndicatorCounted();   
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limits = Bars-counted_bars;        
//----
   if(limits>0)                      
   {
    for(int i=limit; i>=0; i--)
    {
     double   _High      = iHigh(Symbol(), 1440,i);   
     double   _Low       = iLow(Symbol(),  1440,i);   
     double   _Open      = iOpen(Symbol(), 1440,i);   
     double   _Close     = iClose(Symbol(),1440,i);                
     datetime _Time_Open = iTime(Symbol(), 1440,i);      // Открытие бара
     //datetime _start_day = 11*60*60;                   // Начало дня  
     datetime _End_Day   = 1440*60;                      // Конец дня 
       
     string   _Time_Open_txt  = TimeToStr(_Time_Open,TIME_DATE ); // Преобразуем время открытия в строку   
     if(Sho_bars)
      {
       // Функция рисующая объекты на графике
       TrendLineGraff(txt + _Time_Open_txt +" start_day",_Time_Open,_High,_Time_Open,_Low);                      // левая граница     
       TrendLineGraff(txt + _Time_Open_txt +" End_Day",_Time_Open + _End_Day,_High,_Time_Open + _End_Day, _Low); // правая граница           
       TrendLineGraff(txt + _Time_Open_txt +" High",_Time_Open,_High,_Time_Open + _End_Day,_High);               // верхняя граница  
       TrendLineGraff(txt + _Time_Open_txt +" Low",_Time_Open,_Low,_Time_Open + _End_Day,_Low);                  // нижняя граница      
       
       TrendLineGraff(txt + _Time_Open_txt + " T_Line", _Time_Open, _Open, _Time_Open + _End_Day, _Close);
      }          
   }
 }  
   return(0);
  }
//+------------------------------------------------------------------+
//| Функция отображения трендовой линии                              |
//+------------------------------------------------------------------+
 void TrendLineGraff(string labebe,datetime time1,double price1,datetime time2,double price2)
  {
   if (ObjectFind(labebe)!=-1) ObjectDelete(labebe);
   ObjectCreate(labebe, OBJ_TREND, 0,time1,price1,time2,price2);
   ObjectSet(labebe, OBJPROP_COLOR,clrDarkOrchid);
   ObjectSet(labebe, OBJPROP_STYLE,0);
   ObjectSet(labebe, OBJPROP_RAY,0);
   ObjectSet(labebe, OBJPROP_BACK, true);
  }
//+------------------------------------------------------------------+
//| Функция удаляет объекты                                          |
//+------------------------------------------------------------------+

 void GetDellName (string name_n = "ytg_")
  {
   string vName;
   for(int i=ObjectsTotal()-1; i>=0;i--)
    {
     vName = ObjectName(i);
     if (StringFind(vName,name_n) !=-1) ObjectDelete(vName);
    }  
  }
//+------------------------------------------------------------------+
 
Alex_Profit:

Buon pomeriggio a tutti. Chiedo aiuto agli esperti. Ho questo codice.

Si prega di consigliare cosa dovrebbe essere corretto per garantire che la linea di tendenza sia disegnata sui massimi del TF giornaliero.

Ne ho davvero bisogno. Per favore, aiutatemi.

Quando si lavora con i dati di un altro TF, le barre devono essere calcolate da quello. Ma questa lezione è inutile...

iBars()!!!

E invece di cancellare gli oggetti, possiamo dare a tutti gli oggetti un prefisso unico (in questo caso è"TRADE_") e cancellarli tutti insieme in deinit con la funzione ObjectsDeleteAll().

Eccolo: datetime _End_Day = 1440*60;// Fine del giorno - nonè affatto "Fine del giorno", è due mesi dopo ))) Il valore "fine giornata" non è necessario, perché è l'inizio del giorno successivo e l'indicatore traccia comunque la linea lì.

 
evillive:

Quando si lavora con i dati di un altro TF, le barre dovrebbero essere contate anche da quel TF. Ma la lezione non è utile...

iBars()!!!

Mi dispiace. Ma ancora non lo capisco. Posso sistemarlo nel codice?

E anche come esempio. È sempre più facile con gli esempi.

Ne ho davvero bisogno. Grazie, amico.

 
Alex_Profit:

Mi dispiace per questo. Ma continuo a non capire. Possiamo sistemarlo nel codice?

E anche come esempio. È sempre più facile con gli esempi.

Ne ho davvero bisogno. Grazie.

Quindi qual è il risultato? Ha funzionato?