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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3653
Beiträge: 36083
Benutzer: 5.791
Aktive Benutzer: 598
Links: 80
Wir begrüßen unseren neuesten Benutzer: DayTrader2000
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 2 Tagen
- DayTrader2...
vor 2 Tagen
- erfolgreic...
vor 3 Tagen
- ehonk
vor 3 Tagen
- nagateru
vor 5 Tagen
- elray17

Onlineuser
'Wer ist online' anzeigen Benutzer: 4
Gäste: 55
Gesamt: 59
Team: 0
Team:  
Benutzer:  Domke01, ForexMax, Nefastus, traderdoc
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 38
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.
Mit Zitat antworten
  #2 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 212
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
Mit Zitat antworten
  #3 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 38
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
Mit Zitat antworten
  #4 (permalink)  
Alt vor 3 Wochen
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
Mit Zitat antworten
  #5 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.758
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.
Mit Zitat antworten
  #6 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 38
Andreas2016 befindet sich auf einem aufstrebenden Ast
Standard

Super und ein großes Dankeschön Christian
Mit Zitat antworten
  #7 (permalink)  
Alt vor 3 Wochen
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
Mit Zitat antworten
  #8 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 212
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
Mit Zitat antworten
  #9 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Apr 2016
Beiträge: 38
Andreas2016 befindet sich auf einem aufstrebenden Ast
Standard

Ein Dankeschön für alle Antworten und allen ein schönes WE
Andreas
Mit Zitat antworten
  #10 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.758
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.
Mit Zitat antworten
Antwort

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 17:39 Uhr.



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