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: 4978
Beiträge: 43879
Benutzer: 7.222
Aktive Benutzer: 72
Links: 84
Wir begrüßen unseren neuesten Benutzer: Mane
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 163
Gesamt: 163
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 02.06.17
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 55
Andreas2016 befindet sich auf einem aufstrebenden Ast
Standard Auswertung Spread

Guten Abend,

weiß bitte jemand, wie eine Auswertung fahre wie sich der Spread an einem bestimmten Zeitraum verändert.

Ich würde das gerne für den Dax als Ger30 machen. Da ist richtig schön Bewegung dahinter.

Freue mich über Anregungen.

Ein schönes WE wünscht allen
Andreas

PS: Und für diejenigen, welche mir einer Idee etc. helfen die Frage zu beantworten hinterlasse ich schonmals mein Dankeschön.
  #2 (permalink)  
Alt 02.06.17
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Hallo Andreas,

man könnte bei jedem Tick den aktuellen Spread auslesen (oder grober jede Minute) und den Wert inklusiv Zeitstempel (oder gleich als lesbares Zeitformat) in eine csv schreiben. Diese wiederum wenn fertig mit Excel öffnen und ein Graph auf die Reihe legen dann sieht man grafisch schön die Unterschiede.

Grüße
C$D
  #3 (permalink)  
Alt 02.06.17
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 55
Andreas2016 befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank C$D,

Deine Antwort zeigt schonmal daß das geht.

Wie kann ich das bitte umsetzen, bei jedem Tick den aktuellen Spread auslesen und in die csv bringen? Gibt es dafür ein Script oder gar eine interne Anwendung?
Von dort vermute ich komme ich selbst weiter ans Ziel.

Viele Grüße und Danke
Andreas
  #4 (permalink)  
Alt 03.06.17
Neues Mitglied
 
Registriert seit: Mar 2017
Beiträge: 27
Collider befindet sich auf einem aufstrebenden Ast
Collider eine Nachricht über Skype™ schicken
Standard

Hallo Andreas,

diesen Code habe ich aus dem Netz .Stammt nicht aus meiner Feder.

PHP-Code:
//------------------------------------------------------------------
#property copyright "www.forex-tsd.com"
#property link      "www.forex-tsd.com"
//------------------------------------------------------------------
#property indicator_chart_window

//
//
//
//
//

extern string FileName   "Ticks.csv";
extern bool   SaveVolume false
int fileHandle;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
//
//

int  OnInit()                   { fileHandle FileOpen(Symbol()+" - "+FileName,FILE_WRITE|FILE_SHARE_READ|FILE_ANSI|FILE_CSV); return(0); }
void OnDeinit(const int reason) {              FileClose(fileHandle);}
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 &TickVolume[], const long &Volume[], const int &Spread[])
{                
   if (
fileHandle <0)
   {
      static 
bool alerted false;   //<--------- Welchen Sinn das haben
         
if (!alerted)              //<-------- soll ist mir aber schleierhaft
         
{
            
Alert("File : "+Symbol()+" - "+FileName+" could not be opened"); alerted true;
         }
         return(
0);
   }         
   if (
FileSize(fileHandle) == 0)
         
FileWriteString(fileHandle,"date and time,bid,ask,volume\n");
         if (
SaveVolume)
               
FileWriteString(fileHandle,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits)+","+DoubleToString(TickVolume[rates_total-1],0)+"\n");
         else  
FileWriteString(fileHandle,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits)+"\n");
         
FileFlush(fileHandle);
   return(
0);

Du müsstest dann nur noch den Spread berechnen mit:
PHP-Code:
(ask bid) / Point 
Gruß Christian
  #5 (permalink)  
Alt 03.06.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

if (fileHandle <0)
{
static bool alerted = false; //<--------- Welchen Sinn das haben
if (!alerted) //<-------- soll ist mir aber schleierhaft
{
Alert("File : "+Symbol()+" - "+FileName+" could not be opened"); alerted = true;
}
return(0);
}

Der Sinn liegt in der einmaligen! Alert-Ausgabe, denn alerted wird nach dem Alert auf true gestellt und damit wird die if-Abfrage false.

Man hätte allerdings den Code auch kürzer und übersichtlicher fassen können, indem man den Alert in der Funktion OnInit() ausgeben lässt:

int OnInit() {
...
if (filehandle < 0) Alert(...);
return(0);
}

int OnCalculate(...) {
if (filehandle < 0) return(0);
...
}

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 03.06.17
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 55
Andreas2016 befindet sich auf einem aufstrebenden Ast
Standard

Super und ein großes Dankeschön Christian
  #7 (permalink)  
Alt 03.06.17
Neues Mitglied
 
Registriert seit: Mar 2017
Beiträge: 27
Collider befindet sich auf einem aufstrebenden Ast
Collider eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen

Der Sinn liegt in der einmaligen! Alert-Ausgabe, denn alerted wird nach dem Alert auf true gestellt und damit wird die if-Abfrage false.


traderdoc
Also verhindert static ein neuinitialisierung von alerted ?

Gesendet von meinem LG-H850 mit Tapatalk
  #8 (permalink)  
Alt 03.06.17
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Hallo Andreas du kannst auch direkt den Spread rausholen per MarketInfo mit MODE_SPREAD.
https://docs.mql4.com/marketinformation/marketinfo
https://docs.mql4.com/constants/envi...tinfoconstants

Zum csv erstellen:
https://docs.mql4.com/files

Viel Erfolg, C$D
  #9 (permalink)  
Alt 03.06.17
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 55
Andreas2016 befindet sich auf einem aufstrebenden Ast
Standard

Ein Dankeschön für alle Antworten und allen ein schönes WE
Andreas
  #10 (permalink)  
Alt 03.06.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Collider Beitrag anzeigen
Also verhindert static ein neuinitialisierung von alerted ?
Korrekt! Man hätte alerted auch global deklarieren können.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Thema geschlossen

Lesezeichen

Stichworte
auswertung spread, programmierung, programmierung metatrader, programmierung mql4, spread.mql4

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 +2. Es ist jetzt 21:21 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.
-----------------------------------------------------------------------------------------------------------------------------