Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43248
Benutzer: 7.220
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 9 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 453
Gesamt: 454
Team: 0
Team:  
Benutzer:  murkel
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 05.03.23
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard Berechnungsloop für Chartzeiten

Könnte mir bitte jemand helfen, wie ich den Loop für zeitabhängige Berechnung im Indikator am besten formuliere?

Einstellungen:
1. Der Indikator wird automatisch/gezwungen im m5 Chart geladen.
Das ist möglich, weil er nur Daten zeigt (keine Kurse oder sonstiges).
2. Zeiteinheiten für die Neuberechnung der Werte m5 bis w1.
3. Es existiert schon ein Array
int iATimFrams[7]={5,15,30,60,240,1440,10080};
4. Berechnungen sollen mit jedem Beginn einer neuen Zeiteinheit geschehen.

OnCalculate sieht bisher so aus:
Code:
   // ====================================== first run
   if(prev_calculated==0)
   {
      // === calculate the past values
         CalcAdr30();    //from yesterday 30 days back
         CalcAdr0();     //for today
         CalcAdrLeft();  //for today
         CalcChange();   //summaries till now
         CalcState();    //summaries till now
   }
   else
   {
      // === hier fehlt mir eine elegante Lösung
   }
Wäre es besser, ein zweites Array mit den Repeat-Werten für den m5 Chart
int iACalcRepeats[7]={1,3,6,12,48,288,2016};
zu schaffen und mit dem zu rechnen als die Berechnungs Timeframes durch _Period zu dividieren?
Und/oder wäre es besser, die einzelnen CalcXy() Funktionen in einem 5minuten Timer zu packen anstatt als else Anweisung in OnCalculate (oder spielt das keine Rolle)?

Wäre nett, wenn mir Programmier-Profis da zeigen könnten, wie man es am besten macht.
Danke. AVT
  #2 (permalink)  
Alt 06.03.23
Mitglied
 
Registriert seit: Jun 2020
Beiträge: 38
TraumExpert befindet sich auf einem aufstrebenden Ast
Standard

Hallo AVT,

1.Du könntest eine IsNewCandle Funktion schreiben, und falls true Deinen Code ausführen
2. Oder eine fixe Zeit also zb. alle 15 Minuten

datetime newExecution = TimeCurrent () + 15*60;// (sollte vielleichtin den Globals stehen, sonst wird der Code nie erreicht :-))

if (TimeCurrent() == newExecution) {

// Dein Code


// neue Executionzeit setzten
newExecution = TimeCurrent () + 15*60;
}

Gruß

TraumExpert

Geändert von TraumExpert (06.03.23 um 13:09 Uhr)
Thema geschlossen

Lesezeichen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------