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: 3824
Beiträge: 36908
Benutzer: 6.076
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: Spitzmaus
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 7 Stunden
- Spitzmaus
vor 9 Stunden
- juleslesqu...
vor einem Tag
- hmf44
vor einem Tag
- Crossa
vor einem Tag
- snatshit

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

Empfehlungen

Werbung

Like Tree5Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 23.12.15
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 220
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

dank obiger Beispiele läuft das prima. Ich habe jetzt probiert per ArrayCopyRates (ArrayCopyRates - MQL4 Documentation) der dll die Bars im Chart zur Verfügung zu stellen und komme da nicht weiter. Scheinbar gibt es bei einer zweiten Dimension noch etwas zu beachten...?

mql:
im import
Code:
double Arrays(double &bars[][6]);

dann per MqlRates bars[]; oder double bars[][6];
(welches auch immer die richtige Wahl ist...)

dann
Code:
ArrayCopyRates(bars, NULL, 0);
(hier auch die Frage reicht es im OnInit oder muss es permanent OnTick)

dll:
Code:
#define MT4_EXPFUNC extern"C"__declspec(dllexport)
MT4_EXPFUNC double _cdecl Arrays(double *bars[][6])

double test;
test = bars[0][2];

return ((double)test);

Vermutlich stimmt irgendwas mit den *& stimmt noch nicht... Ich habe alle mögliche probiert und immer kommt ein Fehler wie "Access violation read to 0xDA9003EF"

Gruß
  #12 (permalink)  
Alt 05.01.16
Mitglied
 
Registriert seit: May 2015
Beiträge: 124
yytrader befindet sich auf einem aufstrebenden Ast
Standard

Hallo CashDigger,

wenn du die Funktion ArrayCopyRates verwendest, wird keine Matrix, sondern ein Strukt übergeben.

anbei der Code:
Code:
#import "Project1.dll"
double GetRatesItemValue(MqlRates &rates[],int);
int SingleArray(double &a[], int &b[]);
#import

int init()
{
   int retValue;
   double a[10]={2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0};
   int b[10]={1,2,3,4,5,6,7,8,9};
   
   retValue = SingleArray(a, b); 
   Print("SingleArray: retValue:",retValue," a:",a[0]," ",a[1]," ",a[2]," ",a[3]," ",a[4]);
   
   
   int selection = 1;
    MqlRates rates[];
   ArrayCopyRates(rates,NULL,0);
   Print("GetRatesItemValue:",GetRatesItemValue(rates,selection));
   
   return(0);
}
Code:
struct RateInfo
  {
   __int64           ctm;
   double            open;
   double            low;
   double            high;
   double            close;
   unsigned __int64  vol_tick;
   int               spread;
   unsigned __int64  vol_real;
  };
  
__declspec (dllexport) double GetRatesItemValue(const struct RateInfo* rates, const int typeSelect)
  {
   switch(typeSelect)
   {
      case 0: return rates[0].ctm;
      case 1: return rates[0].open;
      case 2: return rates[0].low;
      case 3: return rates[0].high;
      case 4: return rates[0].close;
      
      
      default:
              return -1.0;
   }
}

Wenn die Werte aktualisiert werden sollen, dann musst du diese Funktion in OnTick aufrufen, da so immer die neuesten Werte verwendet werden. Ich verwende immer nur init zum testen, da es so nur einmal und sofort ausgeführt wird.


Gruß

yytrader
Ca$hDigger likes this.
Thema geschlossen

Lesezeichen

Stichworte
dll, dll metatrader, mql4, mql4 dll, programmierung, programmierung metatrader


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 03:53 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
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.
-----------------------------------------------------------------------------------------------------------------------------