Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 06.05.17
ping ping ist offline
Mitglied
 
Registriert seit: Feb 2017
Beiträge: 31
ping befindet sich auf einem aufstrebenden Ast
Standard eigene Zeitskala

Hi,

da auch hier im Forum des Öfteren nach dem Ändern der Zeitskala gefragt wurde, hier eine Möglichkeit eine eigene Zeitskala zusätzlich einzublenden.
Leider ist in dem Befehl ChartSetInteger(0,CHART_SHOW_DATE_SCALE,0,false); ein Bug drin, sonst könnte man die originale Zeitskala noch ausblenden. Aber das will Metaquotes wohl unterbinden.
ChartSetInteger(0,CHART_SHOW_DATE_SCALE,0,false); funktioniert nur mit gleichzeitiger Verwendung von ChartSetInteger(0,CHART_SHOW_PRICE_SCALE,0,false); richtig. Sei's drum, wer es dennoch haben möchte (halt eben nur mit zwei Leisten):

PHP-Code:
    #property version "1.00"
    #property copyright "copyright © 2017  tggits"
    #property description "e-mail: tggits@web.de           homepage: tggits.weebly.com"
    #property description "\n\n---  Freeware  ---\n"
    #property description "Blendet eine eigene Zeit-Skala ein."
    #property indicator_separate_window
    #property strict
    
extern int  Bz=-1// Brokerzeitoffset [Stunden] [z.B -1 oder 2]
    
string      Tx="Zeitskala ",Me[]={" Jan "," Feb "," Mar "," Apr "," May "," Jun "," Jul "," Aug "," Sep "," Oct "," Nov "," Dec "};
    
int         i,x,y;
    
double      D;
    
datetime    Z;
    
void init()
    { 
IndicatorShortName(""); 
      
ChartSetInteger(0,CHART_HEIGHT_IN_PIXELS,ChartWindowFind(),20);
    }
    
void start(){}
    
void OnChartEvent(const int Id,const long &X,const double &Y,const string &S)
    { 
ObjectsDeleteAll(ChartWindowFind(),EMPTY);
      
// ChartSetInteger(0,CHART_SHOW_DATE_SCALE,0,false);
      
for(i=0;i<ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0);i+=64)
      { 
ChartXYToTimePrice(0,i,0,x,Z,D);
        
ChartTimePriceToXY(0,0,Time[0],0,x,y);
        if(
i<=x)
        { 
ObjectCreate(0,Tx+"L "+(string)i,OBJ_LABEL,ChartWindowFind(),0,0);
          
ObjectSet(Tx+"L "+(string)i,OBJPROP_CORNER,4);
          
ObjectSet(Tx+"L "+(string)i,OBJPROP_XDISTANCE,i);
          
ObjectSet(Tx+"L "+(string)i,OBJPROP_YDISTANCE,0);
          
ObjectSet(Tx+"L "+(string)i,OBJPROP_HIDDEN,true);
          
ObjectSet(Tx+"L "+(string)i,OBJPROP_SELECTABLE,false);
          
ObjectSetString(0,Tx+"L "+(string)i,OBJPROP_TOOLTIP,"\n");
          
ObjectSetText(Tx+"L "+(string)i,"|",1,"Script",(color)ChartGetInteger(0,CHART_COLOR_FOREGROUND));
          
ObjectCreate(0,Tx+"Z "+(string)i,OBJ_LABEL,ChartWindowFind(),0,0);
          
ObjectSet(Tx+"Z "+(string)i,OBJPROP_CORNER,4);
          
ObjectSet(Tx+"Z "+(string)i,OBJPROP_XDISTANCE,i-1);
          
ObjectSet(Tx+"Z "+(string)i,OBJPROP_YDISTANCE,5);
          
ObjectSet(Tx+"Z "+(string)i,OBJPROP_HIDDEN,true);
          
ObjectSet(Tx+"Z "+(string)i,OBJPROP_SELECTABLE,false);
          
ObjectSetString(0,Tx+"Z "+(string)i,OBJPROP_TOOLTIP,"\n");
          if(
i==0||Period()>=1440)
            
ObjectSetText(Tx+"Z "+(string)i,(string)TimeDay(Z)+Me[TimeMonth(Z)-1]+(string)TimeYear(Z-Bz*3600),7,"Tahoma",(color)ChartGetInteger(0,CHART_COLOR_FOREGROUND));
          else
            
ObjectSetText(Tx+"Z "+(string)i,(string)TimeDay(Z)+Me[TimeMonth(Z)-1]+TimeToStr(Z-Bz*3600,TIME_MINUTES),7,"Tahoma",(color)ChartGetInteger(0,CHART_COLOR_FOREGROUND));
        }
      }
    } 
ciao ping
Angehängte Dateien
Dateityp: ex4 Zeitskala.ex4 (10,6 KB, 0x aufgerufen)
Dateityp: mq4 Zeitskala.mq4 (4,7 KB, 4x aufgerufen)