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: 36909
Benutzer: 6.081
Aktive Benutzer: 495
Links: 80
Wir begrüßen unseren neuesten Benutzer: DarthTrader
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 47 Minuten
- DarthTrade...
vor 2 Stunden
- Eren
vor 10 Stunden
- Rene1504
vor 11 Stunden
- ibdafx
vor einem Tag
- Batangenyo

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 64
Gesamt: 65
Team: 0
Team:  
Benutzer:  DarthTrader
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 02.09.11
Neues Mitglied
 
Registriert seit: Sep 2011
Beiträge: 3
Alexander Jansen befindet sich auf einem aufstrebenden Ast
Standard OrderSend (Anfängerfrage)

Liebe Forengemeinschaft,

ich bin Neuling in der Programmierung des Metatraders und wollte ein Skript schreiben, dass eine Long-Order ausführt. Also habe ich das Standardbeispiel genommen und einfach nach meinen Wünschen abgeändert. Hier ist mein Skript:

#property copyright "Alexander Jansen"
#property link ""

#include <stdlib.mqh>
#include <WinUser32.mqh>

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
int ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,NUL L,0,0,CLR_NONE);
if(ticket<1)
{
int error=GetLastError();
Print("Error = ",ErrorDescription(error));
return;
}
//----
return(0);
}
//+------------------------------------------------------------------+

Das funktioniert auch schön.

Da ich gerne einen Stopp-Loss einfügen möchte, habe ich die entsprechende Zeile abgeändert zu

int ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-30*Point,0,NULL,0,0,CLR_NONE);

Und das funktioniert nicht mehr. Egal, was ich als SL einsetze (0.1, 10, 100, Ask-30 etc.), der Metatrader eröffnet keine Order. Nur wenn dort eine 0 steht, dann wird die Order eröffnet.

Was habe ich falsch gemacht?

Vielen Dank schonmal im voraus für jede Hilfe.

Alexander
  #2 (permalink)  
Alt 02.09.11
Elite Mitglied
 
Registriert seit: May 2011
Ort: München
Beiträge: 391
rekors befindet sich auf einem aufstrebenden Ast
Standard

hmm die sieht eigendlich soweit sauber aus...
gut oben hast nen fehler drinne NULL und NUL L
aber ich denke das kommt vom copy and paste

das hier ist meine BUY order und die funktioniert super

ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-10*Point,Ask+10*Point," Frogger V1 Buy",16384,0,Green);
  #3 (permalink)  
Alt 02.09.11
Neues Mitglied
 
Registriert seit: Sep 2011
Beiträge: 3
Alexander Jansen befindet sich auf einem aufstrebenden Ast
Standard funktioniert leider auch nicht

Hallo rekors,

danke für die schnelle Antwort.

die NUL L liegt vermutlich am Zeilenumbruch, denn bei mir steht dort wirklich NULL.

Leider klappt es auch mit Deinem Code nicht. Ich handel den DAX-SEP11.
Ich hab auch schon überlegt, ob es vielleicht am Faktor liegt, also Ask-10*Points oder Ask-1000*Points oder Ask-0.01*Points. Es hilft jedoch alles nichts.
  #4 (permalink)  
Alt 03.09.11
Neues Mitglied
 
Registriert seit: Nov 2010
Beiträge: 6
Testmaster befindet sich auf einem aufstrebenden Ast
Standard

iAsk=NormalizeDouble(Ask,Digits);

int ticket=OrderSend(Symbol(),OP_BUY,0.1,iAsk,3,iAsk-30*Point,0,NULL,0,0,CLR_NONE);

So sollte es klappen. Du musst NormalizeDouble verwenden.

Hoffe es hilft.
  #5 (permalink)  
Alt 03.09.11
Gesperrter Benutzer
 
Registriert seit: Sep 2011
Ort: Kassel
Beiträge: 749
JoeDormann befindet sich auf einem aufstrebenden Ast
JoeDormann eine Nachricht über Skype™ schicken
Wink

Hallo erstmal,

falls das mit den NormalizeDouble nicht klappt, gäbe es noch folgende Erklärung:
Es gibt Broker mit Kontentypen, wo man nicht gleich einen Stoploss und oder Target mit der Order setzen kann.
Abhilfe schafft dann ein nachträgliches Modify der Order auf die gewünschten Werte.
Ich mache das nur noch so und habe seitdem keinerlei Probleme mehr, es sei denn, man hält die Mindestdifferenz von ca. 2 x Spread nicht ein.
Im Expertlog steht gewöhnlich bei Orderproblemen auch eine Fehlernummer.
Diese Fehlernummer kannst du in Verbindung mit MQL4 googlen und wirst sicher fündig.
Zumeist gibts da auch noch jede Menge Tips, wie man das jeweilige Problem löst.

Gruß Joe
  #6 (permalink)  
Alt 06.09.11
Neues Mitglied
 
Registriert seit: Sep 2011
Beiträge: 3
Alexander Jansen befindet sich auf einem aufstrebenden Ast
Standard

Danke für Eure Hilfe,

leider funktioniert es immer noch nicht. Ich habe den Verdacht, dass Joes Vermutung richtig ist. Ich werde mit meinem Broker sprechen und das Ergebnis posten.

Viele Grüße
Alexander
  #7 (permalink)  
Alt 06.09.11
Neues Mitglied
 
Registriert seit: Nov 2010
Beiträge: 6
Testmaster befindet sich auf einem aufstrebenden Ast
Standard

da brauchst Du doch nicht Deinen Broker fragen:

iAsk=NormalizeDouble(Ask,Digits);

int ticket=OrderSend(Symbol(),OP_BUY,0.1,iAsk,3,0,0,NU LL,0,0,CLR_NONE);
f_OrderModify(ticket,iAsk-iStopLoss*Point,iAsk+iTakeProfit*Point,CLR_NONE);

Probieren und nicht aufgeben
Thema geschlossen

Lesezeichen

Stichworte
mql4, ordersend, programmierung, programmierung metatrader, sl, stoploss, stopploss


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 01:20 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.
-----------------------------------------------------------------------------------------------------------------------------