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: 3822
Beiträge: 36900
Benutzer: 6.068
Aktive Benutzer: 492
Links: 80
Wir begrüßen unseren neuesten Benutzer: supadog
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 56 Minuten
- supadog
vor 21 Stunden
- POCJonah7
vor einem Tag
- flowi88
vor einem Tag
- dealtycoon
vor einem Tag
- VicenteWuc

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 35
Gesamt: 36
Team: 0
Team:  
Benutzer:  Stier
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 13.05.16
Neues Mitglied
 
Registriert seit: May 2012
Beiträge: 11
DariusK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Also, ich würde das Sleep(5000) da nicht platzieren. Denn an dieser Stelle würde das bedeuten, dass nach jeder selektierten Order 5 Sekunden gewartet wird. Und da die Selektion nicht weiter eingeengt wird, verläßt der EA diese Schleife erst nach x Orders * 5sec. Das kann dann eine Weile dauern.

traderdoc
Sekunden können jetzt eingestellt werden....wie man mag...ab 1 sekunden
  #12 (permalink)  
Alt 13.05.16
Neues Mitglied
 
Registriert seit: May 2012
Beiträge: 11
DariusK befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Also, ich würde das Sleep(5000) da nicht platzieren. Denn an dieser Stelle würde das bedeuten, dass nach jeder selektierten Order 5 Sekunden gewartet wird. Und da die Selektion nicht weiter eingeengt wird, verläßt der EA diese Schleife erst nach x Orders * 5sec. Das kann dann eine Weile dauern.

Ok, ich sehe gerade, dass Du die Stelle verändert hast. Der wartet wahrscheinlich trotzdem noch rel. lange.

Was ist Sleep(Sleep*1000);?
Geht so etwas durch den Compiler, da Sleep ein reserviertes Wort ist, dürfte es eigentlich nicht als Variable verwendet werden.

traderdoc
Ja er hat zumind. nicht gemeckert....habe selbst ausprobiert...


es ist so, wenn ich jetzt per Hand eine order aufmache setzt er erst den TP dann den SL und dann beide...ist ja auch logisch, wegen des programms...reihenfolge....ich werde es vielleicht noch erweitern...trailing stop oder so...so kann man bedenkenlos per hand order aufmachen und dann warten....gruß.


ps. öffne eine order mit 0,01 und dann warte ....bei mir funktioniert....gruß
  #13 (permalink)  
Alt 16.05.16
Neues Mitglied
 
Registriert seit: May 2012
Beiträge: 11
DariusK befindet sich auf einem aufstrebenden Ast
Standard

Ich habe es etwas verändert, wegen dem Sleep, Die Zeit für Sleepa sollte nicht zu hoch sein, so vielleicht 1.0 oder 1.5....probiere zur Zeit real aus...es geht...


extern bool MTakeProfit=true;
extern bool MStopLoss=true;
extern double TakeProfit=30;
extern double StopLoss=30;
extern double Sleepa=1;
extern int magicNumber = 0;

//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{

int StopMultd=10;
double TP=NormalizeDouble(TakeProfit*StopMultd,Digits);
double SL=NormalizeDouble(StopLoss*StopMultd,Digits);

//-------------------------------------------------------------------+
//Check open orders
//-------------------------------------------------------------------+
if(OrdersTotal()>0){
for(int i=1; i<=OrdersTotal(); i++) // Cycle searching in orders
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // If the next is available
{
if((MTakeProfit==true)&&(TakeProfit>0)&&(OrderMagi cNumber()== magicNumber)){ // m tp
Sleep(Sleepa*1000);
// Calculate take profit
double tpb=NormalizeDouble(OrderOpenPrice()+TP*Point,Digi ts);
double tps=NormalizeDouble(OrderOpenPrice()-TP*Point,Digits);

Comment("Modifying take profit");
if((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&& (OrderSymbol()==Symbol())){ OrderModify(OrderTicket(),0,OrderStopLoss(),tpb,0, CLR_NONE); }
if((OrderType()==OP_SELL)&&(OrderTakeProfit()==0)& &(OrderSymbol()==Symbol())){ OrderModify(OrderTicket(),0,OrderStopLoss(),tps,0, CLR_NONE); }

} // m tp

if((MStopLoss==true)&&(StopLoss>0)&&(OrderMagicNum ber()== magicNumber)){ // m sl
Sleep(Sleepa*1000);
// Calculate stop loss
double slb=NormalizeDouble(OrderOpenPrice()-SL*Point,Digits);
double sls=NormalizeDouble(OrderOpenPrice()+SL*Point,Digi ts);

Comment("Modifying stop loss");
if((OrderType()==OP_BUY)&&(OrderStopLoss()==0)&&(O rderSymbol()==Symbol())){ OrderModify(OrderTicket(),0,slb,OrderTakeProfit(), 0,CLR_NONE); }
if((OrderType()==OP_SELL)&&(OrderStopLoss()==0)&&( OrderSymbol()==Symbol())){ OrderModify(OrderTicket(),0,sls,OrderTakeProfit(), 0,CLR_NONE); }

}// m sl
Comment("");
}
}
}
//----
int Error=GetLastError();
if(Error==130){Alert("Wrong stops. Retrying."); RefreshRates();}
if(Error==133){Alert("Trading prohibited.");}
if(Error==2){Alert("Common error.");}
if(Error==146){Alert("Trading subsystem is busy. Retrying."); Sleep(500); RefreshRates();}

//----------
return(0);
}
//+-----------------------------------END-------------------------------+

int init()
{
//----
Alert(":-)");
//----
return(0);
}

//

Gruß
Darius
Thema geschlossen

Lesezeichen

Stichworte
mql4, programmierung, programmierung metatrader, sl, stoploss, trailingstop


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 00:05 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.
-----------------------------------------------------------------------------------------------------------------------------