Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
EA-Frage
Hallo Codersguru,
Ich versuche, das Programmieren zu lernen und benutze Ihr Material, ich muss sagen, es ist ausgezeichnet! Schritt für Schritt und einfach zu folgen, danke dafür.
Ich habe eine Frage, da Sie den ema cross over als Beispiel für den EA verwenden, habe ich daran gedacht, den stepMA_7.2 Indikator anstelle des ema zu verwenden. Glauben Sie, dass die stepMA_7.2 wird funktionieren? oder wird der Code neu geordnet werden müssen oder mehr additonal Code kann vielleicht benötigt werden?
Ich dachte, dass ein einfacher Austausch des Indikators im Code ausreichen würde.
Vielen Dank im Voraus
Zum Wohl.
Das ist falsch: die vorherigen Balken sind positiv gezählt
Ich danke Ihnen.
Ich habe immer noch einige Probleme. Die Kaufaufträge werden korrekt geöffnet, aber alle werden mit Stoploss geschlossen, ohne die Ausstiegsbedingungen zu beachten.
//| EA Stripped Down.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
extern double StopLoss =13.0;
extern double MA_Open =12.0;
extern double MA_Close =12.0;
extern double MA_Exit =6.0;
extern double Lots =50.0;
#define MAGICMA 20050610
//+------------------------------------------------------------------+
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
//+------------------------------------------------------------------+
double MA_CLOSE;
double MA_OPEN;
double MA_EXIT_0;
double MA_EXIT_1;
int res;
if(Volume[0]>1) return;
MA_CLOSE=iMA(NULL,0,MA_Close,1,MODE_SMA,PRICE_CLOSE,0);
MA_OPEN=iMA(NULL,0,MA_Open,1,MODE_SMA,PRICE_OPEN,0);
MA_EXIT_0=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if((MA_CLOSE-MA_OPEN>=1*Point) && MA_EXIT_0>MA_EXIT_1)
{
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-StopLoss*Point,0,"",MAGICMA,0,Blue);
return;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
if(Volume[0]>1) return;
MA_EXIT_0=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if(OrderType()==OP_BUY)
{
if(MA_EXIT_0<=MA_EXIT_1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
return;
}
//+------------------------------------------------------------------+
}Gleitender Durchschnitt eines anderen Indikators
Ich habe es herausgefunden.
Prüfung auf offene Positionen innerhalb eines Bereichs
Ich versuche, nach offenen Positionen innerhalb von x Pips zu suchen, wenn keine Position offen ist, wird eine geöffnet. Es funktioniert nicht und öffnet nur Positionen kontinuierlich, kann jemand helfen?
if(buyingPosition)
{
weBeBuying = true;
totalorders = OrdersTotal();
for(i=0;i<totalorders;i++)
{
OrderSelect(i,SELECT_BY_POS);
if((OrderSymbol()==Symbol()) && (OrderMagicNumber()==magicNumber))
{
type = OrderType();
if((type == OP_BUY) || (type == OP_BUYLIMIT))
{
if(((Bid+Spread) - OrderOpenPrice()) > -0.0013)
weBeBuying = false;
}
}
}
}
if(weBeBuying==true)
OrderSend(Symbol(),OP_BUY,Lots,Bid+Spread,Slippage,0,0,NULL,magicNumber,0,Green);
MA eines iCustom Indikators
Wie kodiere ich die Anweisung in einem Ea, um einen gleitenden Durchschnitt von 7, Smooth, eines iCustom-Indikators zu verwenden? Das entspricht der Verwendung eines gleitenden Durchschnitts mit den Daten des ersten Indikators. Sie können dies tun, wenn Sie einen iCustom-Indikator anzeigen und einen MA des Indikators haben (unter Verwendung der Daten des ersten Indikators), aber wie kodieren Sie es in einem Ea?
Bitte helfen Sie mir bei dieser Aussage!
Ich danke Ihnen im Voraus für Ihre Hilfe!
Dave
Kann jemand bei diesem Problem helfen???? Bitte!!!!
Ich glaube, ich habe es verstanden!:
LR0=iCustom(NULL,0, "Laguerre RSI LONG & SHORT ENTRY",0,0); //LOWER GAMMA
Ich brauche immer noch Hilfe - Können Sie mir helfen!
Hier können Sie Ihre Fragen zu MQL4 stellen, und ich werde mein Bestes tun, um sie zu beantworten
für Fehlercode.
Ich habe gerade wieder Konto zu mir, dass auf alle meine Experten, habe ich einen Fehlercode "OrderModify Fehler 1", auch mit einem Experten wie das von Coders Guru, unten,
warum?
Danke!
//+------------------------------------------------------------------+
//| PriceCross.mq4 |
//| Coders Guru |
//| https://www.mql5.com/en/forum |
//+------------------------------------------------------------------+
#Eigenschaft Copyright "Coders Guru"
#property link "https://www.forex-tsd.com"
//---- Includes
#include
//---- Trades Grenzen
extern double TakeProfit = 200;
extern double TrailingStop = 50;
extern double StopLoss = 50;
extern double Lots = 0.1;
extern int Slippage = 5;
//--- Externe Optionen
extern int AktuellerBalken = 1;
extern int HedgeLevel = 6;
extern double Verfall = 7200;
extern int Größe = 4;
extern int Schritt = 1;
extern bool UseClose = true;
//--- Einstellungen der Indikatoren
extern int MaMode = 3;
extern int MaPeriod = 24;
//--- Globale Variablen
int MagischeZahl = 101090;
string Expertenkommentar = "PreisKreuz";
bool LimitPairs = true;
bool LimitFrame = wahr;
int TimeFrame = 60;
string LP[] = {"EURUSD", "USDCHF", "GBPUSD", "USDJPY"}; // Hinzufügen/Entfernen der zu begrenzenden Paare.
bool Optimize = true;
int NumberOfTries = 5;
//+------------------------------------------------------------------
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------
bool isNewSymbol(string aktuelles_symbol)
{
//Schleife durch alle geöffneten Aufträge und Vergleich der Symbole
int total = OrdersTotal();
for(int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
string selected_symbol = OrderSymbol();
if (current_symbol == selected_symbol && OrderMagicNumber()==MagicNumber)
return (False);
}
return (True);
}
//+------------------------------------------------------------------+
int start()
{
int cnt, ticket, total,n;
double trend ;
if(Bars<100) {Print("bars less than 100"); return(0);}
if(LimitFrame)
{
if(Period()!=TimeFrame) {Print("Dieser EA funktioniert nicht mit diesem TimeFrame!"); return(0);}
}
if(LimitPairs)
{
if(AllowedPair(Symbol()) == false) {Drucke("Dieser EA funktioniert nicht mit dieser Währung!"); return(0);}
}
trend = iMA(NULL,0,MaPeriod,0,MaMode,PRICE_CLOSE,CurrentBar);
//--- Handelsbedingungen
bool BuyCondition = false , SellCondition = false , CloseBuyCondition = false , CloseSellCondition = false ;
if (Open[1]trend)
BuyCondition = wahr;
wenn (Open[1]>Trend && Close[1]<Trend)
SellCondition = wahr;
wenn (Open[1]>Trend && Close[1]<Trend)
CloseBuyCondition = wahr;
wenn (Open[1]Trend)
CloseSellCondition = true;
total = OrdersTotal();
if(total < 1 || isNewSymbol(Symbol()))
{
if(BuyCondition) //<-- BUY condition
{
ticket = OpenOrder(OP_BUY); //<-- BUY-Order öffnen
CheckError(ticket, "BUY");
for(n=0 ; n< Size ; n++)
{
ticket = OpenPendingOrder(OP_BUYSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration);
}
return(0);
}
if(SellCondition) //<-- SELL-Bedingung
{
ticket = OpenOrder(OP_SELL); //<-- SELL-Order öffnen
CheckError(ticket, "SELL");
for(n=0 ; n < Size ; n++)
{
ticket = OpenPendingOrder(OP_SELLSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration);
}
return(0);
}
return(0);
}
for(cnt=0;cnt<gesamtzahl;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) //<-- Long-Position wird eröffnet
{
if(UseClose)
{
if(CloseBuyCondition) //<-- Schließen Sie die Order und steigen Sie aus!
{
CloseOrder(OrderType()); return(0);
}
}
TrailOrder(OrderType()); return(0); //<-- Die Order nachverfolgen
}
if(OrderType()==OP_SELL) //<-- Auf Short-Position gehen
{
if(UseClose)
{
if(CloseSellCondition) //<-- Die Order schließen und aussteigen!
{
CloseOrder(OP_SELL); return(0);
}
}
TrailOrder(OrderType()); return(0); //<-- Die Order nachverfolgen
}
}
}
return(0);
}
//+------------------------------------------------------------------+
....
Hallo!
Gibt es eine Möglichkeit zu erkennen, dass ein Auftrag bereits abgeschlossen ist?
Die Illustration ist wie folgt:
Ich eröffne 2 schwebende Orders.
open #182 buy limit 0.17 EURUSD bei 1.3005 sl: 1.2970 tp: 1.3013
open #183 buy limit 0.17 EURUSD at 1.3000 sl: 1.2968 tp: 1.3011
dann
Auftrag #182, Kauf 0,17 EURUSD wird bei 1,3005 eröffnet
Gewinnmitnahme #182 bei 1,3013 (1,3013 / 1,3015)
Ich möchte die Order #183 löschen, nachdem die Order #182 geschlossen wurde. Der Auslöser ist, wenn die Order #182 geschlossen wird, dann wird die Order #183 gelöscht.
Vielen Dank