Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/)
-   Codeschnipsel (http://www.expert-advisor.com/forum/metatrader-5/programmierung-mql5/codeschnipsel/)
-   -   Trennstriche in einstellbaren Zeiten, Tagesabgrenzung (http://www.expert-advisor.com/forum/metatrader-5/programmierung-mql5/codeschnipsel/5445-trennstriche-einstellbaren-zeiten-tagesabgrenzung.html)

Kronenchakra 05.02.17 23:01

Trennstriche in einstellbaren Zeiten, Tagesabgrenzung
 
Nachdem der Wunsch jetzt schon mehrfach geäussert wurde, hab ich da mal was programmiert. Ist allerdings für den MT5.
Code:

//+------------------------------------------------------------------+
//|                                                Handelszeiten.mq5 |
//|                                Copyright © 2017 Ing. Otto Pauser |
//|                                        https://www.opa-trader.at |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017 Ing. Otto Pauser"
#property link      "https://www.opa-trader.at"
#property version  "1.00"
#property indicator_chart_window
#property indicator_plots 0

input string            d1 = "--------- Linie 1 ---------"; // --------- Linie 1 ---------
input string            t1 = "17:30";    // Time 1
input color            c1 = clrRed;      // Color 1
input int              w1 = 2;          // Width 1
input ENUM_LINE_STYLE  s1 = STYLE_SOLID; // Style 1

input string            d2 = "--------- Linie 2 ---------"; // --------- Linie 2 ---------
input string            t2 = "22:00";    // Time 2
input color            c2 = clrGold;    // Color 2
input int              w2 = 2;          // Width 2
input ENUM_LINE_STYLE  s2 = STYLE_SOLID; // Style 2

int ObjNr = 0;

int OnInit()
{
  return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason)
{
  for(int i=ObjNr; i>=0; i--)
      ObjectDelete(ChartID(),"VLine"+IntegerToString(i));
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
  int startIdx = MathMax(prev_calculated,0);
 
  for(int i=startIdx; i<rates_total; i++)
      {
        string st=TimeOnly(time[i]);
        if(TimeOnly(time[i])==t1) CreateVLine(time[i],close[i],c1,w1,s1);
        if(TimeOnly(time[i])==t2) CreateVLine(time[i],close[i],c2,w2,s2);
      }
  return(rates_total);
}

string TimeOnly(datetime aDateTime)
{
  return(StringSubstr(TimeToString(aDateTime),11,5));
}

void CreateVLine(datetime _t, double _p, int _c, int _w, ENUM_LINE_STYLE _s)
{
  string objName="VLine"+IntegerToString(ObjNr);
  ObjectCreate    (ChartID(),objName,OBJ_VLINE,0,_t,_p);
  ObjectSetInteger(ChartID(),objName,OBJPROP_COLOR,_c);
  ObjectSetInteger(ChartID(),objName,OBJPROP_WIDTH,_w);
  ObjectSetInteger(ChartID(),objName,OBJPROP_STYLE,_s);
  ObjNr++;
}

Der gewählte Timeframe sollte aber mit den Eingabezeiten zusammenpassen, sonst kommt kein Signal.
Die eingestellten Vorgabewerte funktionieren von M1 bis M30.

newstarter 05.02.17 23:11

Könnte sein, Kronenchakra, aber kann es nicht überprüfen.
Da steht, es ist nur für mt5. Ich brauch sowas für mt4, schade.....


Der andere Indi 1.Handelszeit ist auch nicht das, was ich suche. Bei mir entsteht da nur ein breiter farbiger Bereich, wenn ich da zb. bei den Zeiten 8.00 und 17.30 eintrage. Oder ich mach da was falsch, ist ja wie immer keine Beschreibung bei diesen Indikatoren....

Bommel

Kronenchakra 06.02.17 03:12

Tagesabgrenzung
 
Ich habe es jetzt im MT4 ausprobiert, läuft ohne Änderung genauso !
Ist ja irgendwie schon fast unterhaltsam, daß Programme Downwards- und nicht Upwards-kompatibel sind.
Zumindest bei so einem relativ simplen Programm ;)
Ich hoffe du kannst was damit anfangen :)

newstarter 06.02.17 08:03

Hmm, ok. Aber wie komm ich da nun ran, wo liegt das Proggi?
Aus die angegebene Seite Opa-trader.at komm ich nicht drauf :-(

Bommel

Kronenchakra 06.02.17 10:39

Der Opa-Trader existiert noch nicht, der muß noch zum Leben erweckt werden.

Im MT4 einen neuen Indikator machen, Parameter sind egal.
Dort alles mit Strg-A markieren und dann löschen.
Den Code aus den Codeschnipseln per Copy & Paste in den leeren Indi übertragen, kompilieren und fertig.

RetepM 06.02.17 11:46

Hi, eine allgemeine Bemerkung zum MT5, keine Kritik!!

Für engagierte "C-Programmierer" ist der MT5 ohne Frage und weitere Diskussion sicher das Mittel der Wahl! Das Teil bietet einfach viele Vorteil.

Aber... die Masse der Anwender ist nur "Trader/in". Da hat der MT4 nach wie vor die Nase vorn und das hat sicher nichts mit "alten" Programmiermöglichkeiten zu tun. Ich bin mal sehr gespannt, wie MetaQuotes damit in Zukunft umgeht. Denn es gab ja wohl auch rechtliche Gründe für die Änderungen. Mal sehn, ob das so bleibt...

Die gewisse Kompatibilität ist ja schon mal erfreulich.

Mit freundlichen Grüßen


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:47 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2019 vbdesigns.de
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum