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: 3367
Beiträge: 33901
Benutzer: 5.357
Aktive Benutzer: 608
Links: 79
Wir begrüßen unseren neuesten Benutzer: ciena
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 57 Minuten
- ciena
vor 22 Stunden
- Mogelbaum
vor einem Tag
- romahanove...
vor 2 Tagen
- thaiquocba...
vor 2 Tagen
- patte

Onlineuser
'Wer ist online' anzeigen Benutzer: 4
Gäste: 38
Gesamt: 42
Team: 0
Team:  
Benutzer:  Raul0, Seany, traderdoc, Vossytsch
Freunde anzeigen

Empfehlungen

Werbung

Like Tree5Likes
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #141 (permalink)  
Alt 02.03.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 193
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

die angezeigten Fehlermeldungen haben aber nix mit iCCI zu tun.
An zwei stellen fehlen Semikolons(rotes Zeichen) und an zwei stellen hast Du Stringvariablen als Zahlen verwendet. Da weiss ich nicht, was da rauskommen soll.
Und an zwei stellen scheinen irgendwelche Abfragen nicht plausibel zu sein.

Kenne leider den Quellcode nicht.
Mit Zitat antworten
  #142 (permalink)  
Alt 02.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Einen Fehler konnte ich irgendwie beheben. Bleibt bloß noch einer:


Code:
extern int TimeFrame = 60;
extern string TimeFrames= "Current:0;M1:1; M5:5; M15:15; M30:30; H1:60; H4:240; D1:1440";
extern int Fast_GD = 15;
extern int Slow_GD = 30;
extern int GD_Type = 0;
extern string GD_Types = "SMA:0; EMA:1; SMMA;2; LWMA:3";
extern int GD_Shift = 0;
extern double Lots = 0.01;
extern int InpCCIPeriod = 20;// CCI Period
extern int indicator_level1 = "-100.0";
extern int indicator_level2 = "+100.0";
extern color color1 = LightSeaGreen;

int Slippage = 1000;

int Ticket, i;
double Spread, PointSet;
bool IsInvested, CloseTicket;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+

int init(); {
int OnInit iCCI;
return(0);
}

//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit() {
   return(0);
}

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+

int start() {  
   if (Digits <= 3) PointSet = 0.01; else PointSet = 0.0001;
   if (Digits <= 1) PointSet = 1;
   Spread=Ask-Bid;
   Lots = MathMax(MathMin(Lots, MarketInfo(Symbol(),MODE_MAXLOT)),MarketInfo(Symbol(),MODE_MINLOT));

//Define Vars
   if (TimeFrame==0) TimeFrame=NULL;
   double LC = iClose(Symbol(), TimeFrame, 1);
   double GD1c = iMA(Symbol(), TimeFrame, Fast_GD, GD_Shift, GD_Type, PRICE_CLOSE, 1);
   double GD2c = iMA(Symbol(), TimeFrame, Slow_GD, GD_Shift, GD_Type, PRICE_CLOSE, 1);
   double CCI = iCCI(Symbol(), InpCCIPeriod, color1, PRICE_CLOSE, 1);

//Check position
   IsInvested = false;
   for (i=OrdersTotal()-1; i>=0; i--) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if((OrderType()==OP_SELL || OrderType()==OP_BUY) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) IsInvested=true;
      }
   } 

//Open Trade
   if (!IsInvested) {
      if (LC>GD1c && GD1c>GD2c && CCI>"+100") OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue);
      if (LC<GD1c && GD1c<GD2c && CCI<"-100") OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);
   }

//Close Trade
   if (IsInvested) {
    for (i=OrdersTotal()-1; i>=0; i--) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {
            if(LC<GD1c && GD1c<GD2c == CCI<"+100") OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);
         }
         if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {
            if(LC>GD1c && GD1c>GD2c >("-100")) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);
         } 
      }
    }    
   }
         
 return(0);
}

Geändert von MA-EA (02.03.16 um 20:58 Uhr)
Mit Zitat antworten
  #143 (permalink)  
Alt 02.03.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 193
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

@MA_EA ich hab zwar keine Ahnung von mql4 aber den hier verstehe ich nicht:

extern int indicator_level1 = "-100.0";

Die Variable soll vom Typ Integer sein(also ganze Zahlen) den Wert aber setzt Du in Anführungszeichen (das ist dann der Variablentyp Buchstaben(string). Damit bringst Du den Compiler sicher zum Glühen.

Und was bezweckst Du mit diesen Zeilen?

if (LC<GD1c && GD1c<GD2c && CCI<"-100")

Der Lastclose soll kleiner als GD1 und GD2 sein und der CCi soll kleiner -100?

Das müsste dann glaube ich so ähnlich aussehen

if (LC<GD1c && GD1c<GD2c && iCCI(Symbol(),0,12,PRICE_TYPICAL,0)<-100)

kann mich auch irren, so hätte ich das gemacht
Mit Zitat antworten
  #144 (permalink)  
Alt 02.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Versteh einiges selber nicht.

Habs zu double geändert. Hab keine Ahnung, wie ich dem Teil beibringen soll, negative Zahlen zu benutzen. Also hab ich den Schrott einfach in "" gesetzt. Funktioniert wahrscheinlich nicht. Aber das ist ja inzwischen normal.

Vielleicht muss man auch was anderes angeben, als die 100 und -100 Linie. Hab aber keine Ahnung, was.

Werd mich die nächsten Tage ganz genau mit allem befassen.
Mit Zitat antworten
  #145 (permalink)  
Alt 02.03.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 193
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

Und was soll das jetzt bringen? Warum steht die Zeile überhaupt da? Kennst du den Unterschied zw int double bool string? Double sind doch auch zahlen und keine Buchstaben. Wie soll das gehen ? Da ist 100=ABC ?
Mit Zitat antworten
  #146 (permalink)  
Alt 03.03.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 193
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

@MA-EA
nochmal langsam, wenn Du den aktuellen Wert des CCI Indikators auslesen willst machst Du das mit

iCCI(Symbol(),0,12,PRICE_TYPICAL,0)

wenn der aktuelle Wert des Indikators kleiner/gleich -100 sein soll lautet die Bedingung:

if(iCCI(Symbol(),0,12,PRICE_TYPICAL,0)<=-100)

wenn du verschiedene Werte statt der -100 testen willst legst Du ne Variable vom Typ double an, also so ähnlich dann:

extern double CCIMin=-100;

und die Bedingung die erfüllt sein muss schreibst Du dann so:

if(iCCI(Symbol(),0,12,PRICE_TYPICAL,0)<=-CCImin)

Ich hab aber auch nur die Tutorials bei mql5 gelesen, kann mich irren.
Man kann auch die Indikatorwerte mit iCustom(....) direkt auslesen
Mit Zitat antworten
  #147 (permalink)  
Alt 03.03.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

@ralfbenker:
extern double CCIMin=-100;
und die Bedingung die erfüllt sein muss schreibst Du dann so:
if(iCCI(Symbol(),0,12,PRICE_TYPICAL,0)<=-CCImin)

Doppeltes - wird zu +. Sicherlich copy/paste-Fehler.

@MA-EA: Auch sage ich es gern noch einmal. Kein Meister ist vom Himmel gefallen, aber auf dem Wege zum Meister, sollte ein Grundlagen"Studium" der Basics des MQL einfach dazugehören.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #148 (permalink)  
Alt 03.03.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 193
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

@traderdoc
jo genau, das ist einer von meinen Schusslichkeitsfehlern wenn's schnell gehen muss
Mit Zitat antworten
  #149 (permalink)  
Alt 03.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Ich schnall einfach nicht, was ich beim init von Indis etc. falsch mache.
Immer krieg ich irgendeine Fehlermeldung. Diesmal heißt es "'{' - function definition unexpected".

Code:
{
int init;
int OnInit iIchimoku;
return;
}
Mit Zitat antworten
  #150 (permalink)  
Alt 03.03.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Ich schnall einfach nicht, was ich beim init von Indis etc. falsch mache.
Immer krieg ich irgendeine Fehlermeldung. Diesmal heißt es "'{' - function definition unexpected".

Code:
{
int init;
int OnInit iIchimoku;
return;
}
Ja, dann schaue Dir doch einfach mal Indikatoren an, die als mq4-Code vorliegen.

Was soll dieser Code auch bedeuten?
Wo ist die Funktion zu diesem Funktionskörper?
OnInit() ist eine prädefinierte Funktion von MQL mit der Struktur:
int OnInit()
{

return(INIT_SUCCEEDED);
}

Die sehe ich bei Dir nicht.
Sorry, aber ich kann mich des Eindruckes nicht erwehren, dass Du auf Biegen und Brechen Dir irgendwas zusammenstückeln willst, ohne die entsprechenden Grundlagen zu haben.
Wie bereits erwähnt, nimm Dir fertigen Code, gehe Zeile für Zeile durch, schlage die Funktionen und Variablen nach usw.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
auftrag, biete, ea, expert advisor, gleitender durchschnitt, kleinanzeigen, suche


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 22:11 Uhr.



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