Kann es sein, dass mt4 nur com , de usw Domains erlaubt? Ich versuch mich gerade mit einer markets TLD zu verbinden, und bekomme ständig einen 5200 Fehler, dass meine URL falsch sei.
Im Browser geht sie jedoch (bis auf einen fehlenden Header).
Hat sich schonmal jemand von euch mit solchen Domains verbunden?
Da mein altes Thema dazu dicht ist, mach ich einfach mal nen Neues auf.
Im Anhang die neueste Version von LoShDistV3 EA. Soll nach und nach immer mehr Sell/Buy-Orders auf machen. Wenn eine der Allerersten ne einstellbare Gewinn-Distanz erreicht hat, sollen alle noch offenen Orders geschlossen und das Ganze von vorn gestartet werden.
1.
Bin ich eher noch Anfänger...
2.
...deswegen kann man bestimmt Einiges optimieren.
3.
Bin ich unschlüssig, wie ich das mit der Order-Zählerei machen soll. Ein paar Zähler müssen immer mit zählen, wie viele Orders geöffnet wurden. Mit diesen Zählern wird dann berechnet, wie viele Orders in Gegenrichtung eröffnet werden müssen, um irgendwelche Verluste mit der richtigen Orderanzahl in Gegenrichtung wieder auszugleichen.
4.
Werden die allerersten und die neuesten Orders immer wieder übers Ticket aufgerufen, um zu berechnen, wann weitere Orders geöffnet werden sollen, wie viele, bzw. ob Alle geschlossen werden können. Hatte immer wieder die Fehlermeldung, dass Ticket für irgendne ausgewählte Order nicht mehr gefunden wurde. Oder umgedreht. Jedenfalls weiß ich nicht, ob das für Abstürze oder Fehler oder sonswas für Probleme sorgt, wenn man irgendwie Tickets oder sonstwas für Infos von Orders aufruft, die inzwischen geschlossen wurden.
Code:
/*=============================================================================================================
// N O T I Z E N U N D I N F O S
//=============================================================================================================
//=============================================================================================================
// P R O P E R T Y
//============================================================================================================*/
//#property strict
// #property strict sorgt anscheinend dafür,
// dass Kommentare im Konfig-Fenster im MT4 sichtbar sind.
#property copyright"LoShDistV3.mq4"
#property copyright"daniel-rudloff@web.de"
//=============================================================================================================
// B E S C H R E I B U N G
//=============================================================================================================
extern string TOY="true = on / yes";
extern string FON="false = off / no";
//=============================================================================================================
// E I N S T E L L U N G E N
//=============================================================================================================
extern string esMN="Magic Numbers";
extern int MN_FirstSel=2;
extern int MN_FirstBuy=4;
extern int MN_NextSel=6;
extern int MN_NextBuy=8;
//-----------------------------------------------------------------------------------------------------------*/
extern string OOO1="Open Orders";
extern string OOO2="from/till Hour";
extern string OOO3="(Server Time)";
extern int OpenFromHour=5; // Zum Testen ab 5 Uhr Orders öffnen lassen.
extern int OpenTillHour=22; // Zum Testen bis einschließlich 22 Uhr öffnen lassen.
//-----------------------------------------------------------------------------------------------------------*/
extern int Slippage=12345;
//-----------------------------------------------------------------------------------------------------------*/
extern int SL=275; // ?
//-----------------------------------------------------------------------------------------------------------*/
extern int TP=425; // ?
//-----------------------------------------------------------------------------------------------------------*/
extern string esIITCBSMS1="if IsTradeContexBusy()";
extern string esIITCBSMS2="sleep Milli Seconds";
extern int slMS=16; // Zum Testen 16 MS
//-----------------------------------------------------------------------------------------------------------*/
extern string esDOONO1="Dist to OrderOpenPrice()";
extern string esDOONO2="open next Order";
extern int Dist_ONO = 25; // ?
//-----------------------------------------------------------------------------------------------------------*/
extern string esDOCAO1="Dist to OrderOpenPrice()";
extern string esDOCAO2="close all Orders";
extern int Dist_CAO = 65; // Zum Testen 65. Weniger als ... ist wahrscheinlich nicht ausreichend?
//-----------------------------------------------------------------------------------------------------------*/
extern int OrdersNeed_Multi = 2;
//-----------------------------------------------------------------------------------------------------------*/
extern double Lots=0.01;
extern double LotsPlus=0.01; // ?
//=============================================================================================================
// G L O B A L E D E K L A R A T I O N E N
//=============================================================================================================
bool
fiSH,fiLO,
neSH,neLO,
OCsel,OCbuy
;
//-----------------------------------------------------------------------------------------------------------*/
double
SL_Sel,SL_Buy,TP_Sel,TP_Buy,MSL,
FiSelOOP_DistONO,FiBuyOOP_DistONO,
NeSelOOP_DistONO,NeBuyOOP_DistONO,
FiSelOOP_DistCAO,FiBuyOOP_DistCAO
;
//-----------------------------------------------------------------------------------------------------------*/
int
TI_FiSel,TI_FiBuy,TI_NeSel,TI_NeBuy,
i,j,k,l,m,n,o,p,q,
FL_opSel,FL_neSel,FL_opBuy,FL_neBuy, // Temporäre Opened/Need-Werte, nur für forLoops ( ? )
Opened_Sel,Opened_Buy,
Need_Sel,Need_Buy
;
//=============================================================================================================
// I N I T
//=============================================================================================================
void OnInit(){}
//=============================================================================================================
// D E I N I T ?
//=============================================================================================================
void OnDeinit(const int reason){}// ?
//=============================================================================================================
// E A F U N K T I O N E N S T A R T
//=============================================================================================================int
void OnTick(){
//=============================================================================================================
// S T O P L O S S
//=============================================================================================================
//SL auf 0 stellen, wenn oben <1,
//um irgendwelche Missverständnisse zu vermeiden.
if(SL<1){
SL_Sel=0.0;
SL_Buy=0.0;}
else{
SL_Sel=NormalizeDouble(Bid+SL*_Point,_Digits);
SL_Buy=NormalizeDouble(Ask-SL*_Point,_Digits);}
//SL genauso groß wie Minstoplevels machen, wenn er kleiner ist:
MSL=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(SL_Sel<MSL)SL_Sel=MSL;
if(SL_Buy<MSL)SL_Buy=MSL;
//=============================================================================================================
// T A K E P R O F I T
//=============================================================================================================
//TP auf 0 stellen, wenn oben <1,
//um irgendwelche Missverständnisse zu vermeiden.
if(TP<1){
TP_Sel=0.0;
TP_Buy=0.0;}
else{
TP_Sel=NormalizeDouble(Bid-TP*_Point,_Digits);
TP_Buy=NormalizeDouble(Ask+TP*_Point,_Digits);}
//=============================================================================================================
// C H E C K H O U R
//=============================================================================================================
// Prüfen, ob zur Zeit Orders geöffnet werden dürfen.
if(
(Hour()>=OpenFromHour&&Hour()<=OpenTillHour)||
(Hour()>OpenTillHour&&Hour()<OpenFromHour && Opened_Sel>=1 && Opened_Buy>=1 )
){
//=============================================================================================================
// 1 . O R D E R S E A R C H
//=============================================================================================================// Prüfen, überhaupt Orders offen sind.
fiSH=false;
neSH=false;
fiLO=false;
neLO=false;
for(i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FirstSel)fiSH=true;
if(OrderMagicNumber()==MN_NextSel )neSH=true;
if(OrderMagicNumber()==MN_FirstBuy)fiLO=true;
if(OrderMagicNumber()==MN_NextBuy )neLO=true;}}}
//=============================================================================================================
// O P E N F I R S T S E L L / O P E N F I R S T B U Y
//=============================================================================================================// Prüfen, überhaupt Orders offen sind.
// Wenn gar keine Orders offen sind...
if(fiSH==false&&neSH==false&&fiLO==false&&neLO==false){
//-----------------------------------------------------------------------------------------------------------*/
//...Zähler auf 0 setzen.
Opened_Sel=0;
Opened_Buy=0;
Need_Sel =0;
Need_Buy =0;
//-----------------------------------------------------------------------------------------------------------*/
// ...FirstSell öffnen:
if(IsTradeAllowed()==true){
TI_FiSel=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_FirstSel,clrBlue);
if(IsTradeContextBusy()==true)Sleep(slMS);} // ?
// ...FirstBuy öffnen:
if(IsTradeAllowed()==true){
TI_FiBuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL_Buy,TP_Buy,NULL,MN_FirstBuy,clrBlue);
if(IsTradeContextBusy()==true)Sleep(slMS);} // ?
}
//=============================================================================================================
// 2 . O R D E R S E A R C H
//=============================================================================================================
// Prüfen, ob 1.Sell und 1.Buy geöffnet wurden,
// und ob next Sell und next Buy schon geöffnet wurden.
for(j=OrdersTotal()-1;j>=0;j--){
if(OrderSelect(j,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FirstSel)fiSH=true;
if(OrderMagicNumber()==MN_NextSel )neSH=true;
if(OrderMagicNumber()==MN_FirstBuy)fiLO=true;
if(OrderMagicNumber()==MN_NextBuy )neLO=true;}}}
//=============================================================================================================
// O P E N F I R S T N E X T O R D E R S
//=============================================================================================================
// Wenn nur FirstSell und FirstBuy offen sind,
// bei entsprechenden Bedingungen
// next Sel / next Buy öffnen.
if(fiSH==true&&fiLO==true&&neSH==false&&neLO==false){
//-----------------------------------------------------------------------------------------------------------*/
// Wenn FirstSell Bedingungen erfüllt, next Sell öffnen.
if(OrderSelect(TI_FiSel,SELECT_BY_TICKET)){
if(OrderSymbol()==Symbol()){ // ?
FiSelOOP_DistONO=NormalizeDouble( OrderOpenPrice() - Dist_ONO*_Point,_Digits);
if(Bid <= FiSelOOP_DistONO){
for( k=OrdersNeed_Multi ; k>0 ; k--){
if(IsTradeAllowed()==true)TI_NeSel=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_NextSel,clrBlue);
if(IsTradeContextBusy()==true)Sleep(slMS);
Opened_Sel++;
Need_Sel = Opened_Sel * OrdersNeed_Multi;
Need_Buy = Need_Sel * OrdersNeed_Multi;} // ?
} } }
//-----------------------------------------------------------------------------------------------------------*/
// Wenn 1.Buy Bedingungen erfüllt,
// next Buy öffnen.
if(OrderSelect(TI_FiBuy,SELECT_BY_TICKET)){
if(OrderSymbol()==Symbol()){
FiBuyOOP_DistONO=NormalizeDouble( OrderOpenPrice() + Dist_ONO*_Point,_Digits);
if(Ask>=FiBuyOOP_DistONO){
for( l=OrdersNeed_Multi ; l>0 ; l--){
if(IsTradeAllowed()==true)TI_NeBuy=OrderSend(Symbol(),OP_BUY,Lots,Bid,Slippage,SL_Buy,TP_Buy,NULL,MN_NextBuy,clrBlue);
if(IsTradeContextBusy()==true)Sleep(slMS);
Opened_Buy++;
Need_Buy = Opened_Buy * OrdersNeed_Multi;
Need_Sel = Need_Buy * OrdersNeed_Multi;}
} } }
//-----------------------------------------------------------------------------------------------------------*/
}
//=============================================================================================================
// 3 . O R D E R S E A R C H
//=============================================================================================================
// 1.Sell und 1.Buy müssen offen sein.
// nextSell und/oder nextBuy müssen offen sein.
for(m=OrdersTotal()-1;m>=0;m--){
if(OrderSelect(m,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FirstSel)fiSH=true;
if(OrderMagicNumber()==MN_NextSel )neSH=true;
if(OrderMagicNumber()==MN_FirstBuy)fiLO=true;
if(OrderMagicNumber()==MN_NextBuy )neLO=true;}}}
//=============================================================================================================
// C H E C K F I R S T O R D E R S A N D N E X T O R D E R S
//=============================================================================================================
// Wenn FirstSell und FirstBuy offen sind...
if(fiSH==true&&fiLO==true){
// ...und nextSell oder nextBuy offen sind,
if(neSH==true||neLO==true){
// Weitere nextOrders öffnen,
// wenn Bedingungen erfüllt sind.
//=============================================================================================================
// C H E C K F I R S T A N D N E X T S E L L O R D E R S
//=============================================================================================================// Letzten next Sell über Ticket auswählen.
// Letzten NextSell auswählen.
if(OrderSelect(TI_NeSel,SELECT_BY_TICKET)){
if(OrderSymbol()==Symbol()){
// Prüfen, ob letzter NextSell OpenNextOrder-Dist erreicht hat.
NeSelOOP_DistONO=NormalizeDouble( OrderOpenPrice() - Dist_ONO*_Point,_Digits );
if(Bid <= NeSelOOP_DistONO){
// Wenn ja, FirstSell über Ticket auswählen.
if(OrderSelect(TI_FiSel,SELECT_BY_TICKET)){
if(OrderSymbol()==Symbol()){
//=============================================================================================================
// O P E N N E W S E L L O R D E R S B Y D I S T
//=============================================================================================================
// Wenn FirstSell Gewinn-Distanz nicht erreicht hat, weitere Sell-Orders öffnen.
if( Ask > FiSelOOP_DistCAO ){
FL_opSel=Opened_Sel; // ?
FL_neSel=Need_Sel; // ?
for( n=FL_neSel ; n>0 ; n--){
if(IsTradeAllowed()==true)TI_NeSel=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_NextSel,clrYellow);
if(IsTradeContextBusy()==true)Sleep(slMS);
Opened_Sel++;
Need_Sel = Opened_Sel * OrdersNeed_Multi;
Need_Buy = Need_Sel * OrdersNeed_Multi;} }
//=============================================================================================================
// C L O S E A L L O R D E R S B Y S E L L D I S T
//=============================================================================================================
// Wenn FirstSell Gewinn-Dist doch erreicht hat...
if( Ask <= FiSelOOP_DistCAO ){
// ...Lots erhöhen...
Lots = OrderLots() + LotsPlus; // ?
// ...und alle Orders schließen.
for(p=OrdersTotal()-1;p>=0;p--){
if(OrderSelect(p,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_NextBuy){
if(IsTradeAllowed()==true)OCbuy=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_FirstBuy){
if(IsTradeAllowed()==true)OCbuy=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_NextSel){
if(IsTradeAllowed()==true)OCsel=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_FirstSel){
if(IsTradeAllowed()==true)OCsel=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
} } } }
//-----------------------------------------------------------------------------------------------------------*/
} } } } }
//=============================================================================================================
// C H E C K F I R S T A N D N E X T B U Y O R D E R S
//=============================================================================================================
// Letzten NextBuy über Ticket auswählen.
if(OrderSelect(TI_NeBuy,SELECT_BY_TICKET)){
if(OrderSymbol()==Symbol()){
// Prüfen, ob NextBuy OpenNextOrder-Dist erreicht hat.
NeBuyOOP_DistONO=NormalizeDouble(OrderOpenPrice() + Dist_ONO*_Point,_Digits);
if(Ask >= NeBuyOOP_DistONO){
// Wenn ja, FirstBuy über Ticket auswählen.
if(OrderSelect(TI_FiBuy,SELECT_BY_TICKET)){
if(OrderSymbol()==Symbol()){
// Prüfen, ob 1.Buy Gewinn-Distanz erreicht hat.
FiBuyOOP_DistCAO=NormalizeDouble( OrderOpenPrice() + Dist_CAO*_Point,_Digits);
//=============================================================================================================
// O P E N N E W B U Y O R D E R S B Y D I S T
//=============================================================================================================
// Wenn 1.Buy Gewinn-Distanz nicht erreicht hat weitere Buy-Orders öffnen.
if(Bid < FiBuyOOP_DistCAO){
FL_opBuy=Opened_Buy; // ?
FL_neBuy=Need_Buy; // ?
for( o=FL_neBuy ; o>0 ; o--){
if(IsTradeAllowed()==true)TI_NeBuy=OrderSend(Symbol(),OP_BUY,Lots,Bid,Slippage,SL_Buy,TP_Buy,NULL,MN_NextBuy,clrYellow);
if(IsTradeContextBusy()==true)Sleep(slMS);
Opened_Buy++;
Need_Buy = Opened_Buy * OrdersNeed_Multi;
Need_Sel = Need_Buy * OrdersNeed_Multi;} }
//=============================================================================================================
// C L O S E A L L O R D E R S B Y B U Y D I S T
//=============================================================================================================
// Wenn FirstBuy Gewinn-Dist doch erreicht hat...
if( Bid >= FiBuyOOP_DistCAO ){
// ...Lots erhöhen...
Lots = OrderLots() + LotsPlus; // ?
// ...und alle Orders schließen.
for(q=OrdersTotal()-1;q>=0;q--){
if(OrderSelect(q,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_NextSel){
if(IsTradeAllowed()==true)OCsel=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_FirstSel){
if(IsTradeAllowed()==true)OCsel=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_NextBuy){
if(IsTradeAllowed()==true)OCbuy=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
if(OrderMagicNumber()==MN_FirstBuy){
if(IsTradeAllowed()==true)OCbuy=OrderClose(NULL,OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
} } } }
//-----------------------------------------------------------------------------------------------------------*/
} } } } }
//-----------------------------------------------------------------------------------------------------------*/
} }
//-----------------------------------------------------------------------------------------------------------*/
} // Öffnende Klammer nach Hour Check
//=============================================================================================================
// E A F U N K T I O N E N B E E N D E N
//=============================================================================================================
}//(void OnTick)
int ClosePositions(string symbol)
{
int orderstotal = OrdersTotal();
int orders = 0;
int ordticket[100][2];
for (int i = 0; i < orderstotal; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if (OrderMagicNumber() != Expert_Magic || OrderSymbol() != symbol)
continue;
int orderType = OrderType();
if (orderType != OP_BUY && orderType != OP_SELL)
continue;
ordticket[orders][0] = OrderOpenTime(); // casting of datetime -> int, should work fine...
ordticket[orders][1] = OrderTicket();
orders++;
}
ArrayResize(ordticket,orders); // we have to remove rest of array otherwise it's contents will be sorted as well
ArraySort(ordticket); // sorts ascending by first dimension -> by OrderOpenTime()
for (i = 0; i < orders; i++)
ClosePositionByTicket(ordticket[i][1]);
}
Ich bekomme folgende Fehler angezeigt:
- im Metaeditor : "possible loss of data due to type conversion"
- im Strategietester : "incorrect start position 0 for ArraySort function"
ich habe einen EA geschrieben, wo man die Handelszeit einstellen kann. Er soll z.B. von 22 bis 8 Uhr nicht handeln. Das klappt soweit auch. Nur nimmt er am nächsten Tag um 8 Uhr seine Arbeit nicht wieder auf.
Was ist zu tuen?
Muss die Zeit irgendwie resetet werden? Und wenn wann und wie?
ich habe folgende frage.
Wie kann ich den Indicator in meinen EA einbauen?
Ich will in der Ordermodify den SL an der unteren Linie oder bei Sell positionen an der oberen Linie nachziehen.
ich habe schon versucht das alles zu kopieren ging aber nicht auch mit den double Werten die oben hinterlegt sind....ich habe auch gesehen das man den indicator seperat aufrufen kann ich denke mit Include... aber trotzdem komme ich damit nicht weiter.
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit, i, flag, flagh, trend[5000];
double up[5000], dn[5000], medianPrice, atr;
int counted_bars = IndicatorCounted();
//---- check for possible errors
if(counted_bars < 0) return(-1);
//---- last counted bar will be recounted
if(counted_bars > 0) counted_bars--;
limit=Bars-counted_bars;
//Print(limit);
ich möchte gerne die echte, aktuelle Zeit auslesen, obwohl der EA gerade im Backtest läuft.
Hat jemand von euch eine Idee, welche Funktion hierfür die richtige ist?
TimeCurrent() TimeLocal() und TimeTradeServer() liefern nur die Zeit, welche gerade im Backtest anstehen würde, aber nicht die recht aktuelle Zeit.
ich habe eine Frage zur Margin-Anforderung in MQL5. Und zwar hab ich da schon wirklich sehr viel im Internet durchgestöbert und die anscheinend "beste" Variante ist die mit dem Befehl
Hierbei wird der double Variable "margin_long" der benötigte Margin für 1 Lot zurückgegeben.
Ich hab jetzt folgendes Problem: Diese Funktion funktioniert perfekt bei einem Broker (Demo und Live sowie auch am Strategietester, unabhängig davon, welchen Hebel man dort einstellt), aber bei einem anderen Broker leider nicht! Da wird anscheinend immer ein Hebel beim DAX von 1:30 verwendet (Live-Betrieb). Ebenso ändert sich die Margin-Anforderung auch, wenn man am Tester den Hebel ändert (also ganz im Gegensatz zum anderen Broker).
Nun zur Frage: Ich glaube, das Problem ist ein Broker-Thema und ich kann da selber nicht viel machen (außer dort anrufen und nachfragen, dass sie das ändern). Oder täusche ich mich bzw. ist eine andere Funktion besser geeignet in MQL5?
Ich habe ein Problem mit der Reaktion auf Knopfdruck, wenn ich mehrere Indikatoren (-Knöpfe) auf einem Chart habe. Die Knöpfe der Indikatoren sind alle nebeneinander links unten positioniert (siehe Bild).
vorher festgelegt sind für alle Indikatoren identisch
- string LETTERSHOW="S", LETTERHIDE="H";
- int DoHiding=0;
Jeder einzelne Indikator definiert seinen Knopf fest, so:
Die einzelnen Button sind immer 35 Pixel breit und werden mit Abstand 0 nebeneinander gesetzt (also immer +35 für die xPosition).
Meine Terminal -Extras - Optionen - Objekte - Empfindlichkeit habe ich schon auf 2 Pixel runtergesetzt.
Dennoch passiert folgendes: wenn ich auf einen Knopf drücke, um den Indikator z.B. zu verstecken, wird nicht nur dieser Indikator versteckt, sondern willkürlich irgendein weiterer Indikator auch. Im Code kann ich keinen Fehler finden - wenn ich zuerst ein "H" sende, das für alle Indikatoren gleich ist: durch #define sind die Knöpfe eindeutig voneinander zu unterscheiden und es sollte nur derjenige Indikator reagieren, dessen Knopf anschließend gedrückt wird; es gibt auch nirgends irgendeine Fehlermeldung.
Hat jemand eine Idee, woran das liegen könnte?
AVT
Ich kann leider keinen Code zur Verfügung stellen, habe aber folgendes Problem.
Mein Programm erstellt eine Order OHNE TakeProfit, setzt aber unter bestimmt Voraussetzungen ein TakeProfit und danach kommt Modify error 1, weil er Tausende OrderModify macht.
meine Überlegung war eine Wahr/Falsch abfrage um das zu Stoppen.
if(OrderTakeProfit()>0)
weil ich dachte es existiert ja nicht und wenn er gesetzt wird, ist er ja erst größer 0.
Aber darauf reagiert das Programm nicht, wenn ein TakeProfit gesetzt wird.
Es erkennt das TakeProfit nicht da ist macht aber auch nichts, wenn es da ist.
Ich würde gerne in meinem EA auf eine Datenbank auf meiner Festplatte (localhost) zugreifen.
(ich hätte da an die Funktion webrequest gedacht)
Leider kann ich in den Optionen - zum Freischalten der Url - keine URL mit localhost eingeben, da MT5 diese löscht. Wenn ich mich auf einen webserver mit webrequest verlinke, dann funktioniert es.
Weiß jemand eine Abhilfe?
beste Grüße
FRECH
PS: ja geht, in dem man die eigene IP statt localhost einträgt...man hat echt Glück, wenn man Freunde hat, die sich auskennen..gg
ich "programmiere" ja noch nicht so lange. Aber ich weiß, dass das decompilieren ein großes Problem darstellt.
Ich versuche mit Laufzeitbegrenzung und/oder Abfrage der Kontonummer etwas Sicherheit zu erreichen. Ist wahrscheinlich für die wirklichen Craks nicht sehr schwierig das zu knacken.
Wie ist es aber, wenn ich Teile des Codes in eine mqh Datei auslagere? Taucht der in der mqh Datei enthaltene Code dann trotzdem im Ergebnis des Compilers auf? Also, bringt das was?
ich musste leider feststellen, dass der Tester mit zunehmenden Gebrauch immer langsamer wird. Obwohl der Regler auf 32 stehet, schleicht der Tester. Ich nehmen an, dass der Tester windowslike irgendwo Dateien oder Logs oder sonstwas bunkert und diese dann dazu führen, dass der Tester ausgebremst wird.
Kann man die Dateien oder Logs oder was auch immer, wieder löschen oder zurücksetzten, damit der Tester wieder die Geschwindigkeit wie nach der Neuinstallation des MT4 hat? Da gibt es doch sicher einen Trick.
Da sitze ich nun schon den ganzen Tag dran und verstehe einfach nicht, warum das plötzlich nicht mehr geht - ich kriege immer den Fehler 5002 (ERR_FILE_WRONG_FILENAME). In meiner Verzweifelung habe ich einen kurzen Test Indikator geschrieben, damit es übersichtlicher ist.
(Kurz angemerkt, ich rufe den MT als /portable auf - das sollte allerdings keinen Einfluß haben, eigentlich, aber man weiß ja nie).
Alle Prints geben die von MT vorgeschriebenen Dateien an:
OnInit: ConfigFile =C:\Users\xxxx\MetaQuotes\Terminal\MT4\MQL4\Files\ Tstf_.DE30Cash_15.cvs
Bei WRONG_FILENAME kam mir der Gedanke, daß der Punkt im _Symbol vielleicht ein Problem darstellt: ich habe also mal den Namen direkt benutzt - hat leider nix geholfen.
Hat jemand ne Idee, warum das plötzlich nicht mehr geht?
Danke. AVT
Hab mal den kleinen Scalper im Anhang zusammen gebastelt. Nix besonderes.
Hab ihn gestern kurz ausprobiert. Sagen wir mal, er scheint zu machen was er soll.
Damit es möglichst keine Ungenauigkeiten gibt, prüft er gleich nach dem Öffnen, ob TP auch ganz korrekt gesetzt wurde. Wenn nicht, holt er das mit OrderModify nach.
Überlege, ob er automatisch entsprechend dem Spread ausrechnen soll, wie viel Pips Gewinn er jedes Mal machen muss. Allerdings geht der Spread anscheinend gerne mal wild hin und her...
Überlege auch, ob er immer mehrere Orders in den Markt schicken sollte. Z.B. dass 4 Sell-Orders gleichzeitig offen sind. Gehn Eine oder Mehrere durch den TP, soll er entsprechend weitere Sell-Orders öffnen, so dass es wieder insgesamt 4 im Markt sind. Aber ich bin leider kein Experte.
Hallo, ich habe seit Kurzem Metatrader 5 heruntergeladen und bin damit sehr unglücklich.
Ich will es mit dem Scalping probieren und teste die Demoversion und bin total enttäuscht. Ich weiß nicht was ich falsch mache. Auch beim Support des Brokers steht man ratlos da.
Das Problem:
Ich möchte eine neue Order eröffnen und in den Handel gehen. Es öffnet sich das Fenster mit dem Auftrag (Terminal). wo man Stopplos usw. einstellen kann. Links daneben war immer so ein Trigger-also so eine Chartanzeige mit sekundengenauer Bewegung. Ich habe es mindestens einmal täglich das diese Triggerabbildung plötzlich verschwindet und auch nicht wiederkommt.
Ich brauche diese Anzeige aber, also läuft es darauf hinaus, das ich das Programm deinstalliere und neu installiere und neu einstelle, wobei natürlich viel Zeit verloren geht....und danngeht es wieder für wenige Stunden.
Heute hatte ich es schon zweimal!!!!
Es kann ja nicht normal sein!!!
Ohne diesen Trigger kann ich den Metatrader nicht nutzen.
Gibt es eine Lösung oder muss ich nach Alternativen suchen ?
ich brauchte etwas Hilfe mit einer Art Indicator fuer meine Ordermodify fuer den SL.
Es soll eine Art Supertrend indicator werden der die ATR multiplieziert... habe es auch in die richtung versucht: