Ich habe einen EA, der sich selbst mit Trades sprengt. Ich benötige Hilfe bei der Erstellung eines Void oder einer Funktion, die zu einem bestehenden EA hinzugefügt werden kann. Diese Funktion muss adressieren:
input bool doBasketExit = true; // Prüfung auf Basket Exit Bedingungen input double BasketTP = 250.0; // Basket Take Profit (Kontowährung) Das Chart-Paar input double BasketSL = -100.0; // Basket Stop Loss (Kontowährung) Das Chart-Paar
Ich betreibe 9 Paare/Charts mit aggressivem EA auf dem H1 und möchte auf jedem der 9 Charts ein paar-spezifisches Basket Trading. Hier ist, was mir gerade passiert ist. 9 Charts laufen, 3 Charts sind im Handel mit, natürlich, 3 separate Paare, die jeweils mit 15 Trades, ja 45 Trades offen, 2 sind im Gewinn & eine ist schlecht verlieren. Ich suche nach einer Möglichkeit, jede Gruppe/jedes Paar der 15 separat zu addieren und jede Gruppe gegen einen Basket SL & TP Grenzen zu reiben. Ich fand einen Korb eingerichtet, aber natürlich braucht es Verfeinerung. Der Trick ist, das gleiche Paar aus der Spalte Order Profit Trade zu addieren. Indem ich auf einem Chart mit einem bestimmten Paar bin, dachte ich, ich hätte eine Lücke gefunden, aber es ist ziemlich kompliziert. Die Funktion muss irgendwie lesen die OrderProfit von Pair???
Ich wäre Ihnen sehr dankbar, wenn Sie sich das ansehen würden.
Danke Ray
Ray
Sie brauchen eine Art "Mutter-EA", der alle magischen Zahlen kennt, die von anderen EAs gehandhabt werden, und der dann die von Ihnen benötigten "On-Group"-Operationen durchführt
Sie brauchen eine Art "Mutter-EA", der alle magischen Zahlen kennt, die von anderen EAs gehandhabt werden, und der dann die von Ihnen benötigten Operationen "auf der Gruppe" ausführt
mladen
danke für Ihre Gedanken zu diesem Thema. Also NEIN.
Ich habe versucht, den Pfeil nach dem Schließen der Signalkerze erscheinen zu lassen, um ein erneutes Malen zu vermeiden, aber alles ohne Erfolg.bitte helfen Sie mir MR. TOOLS und MLADEN, unten ist der Code.
//+------------------------------------------------------------------+//| signalindicator.mq4 |//| Copyright 2015, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2015, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"#property strict#property indicator_chart_window#property indicator_buffers4#property indicator_color1 Blue
#property indicator_color2 Yellow
#property indicator_color3 Aqua
#property indicator_color4 Red
externint FastEMA = 5;
externint SlowEMA = 6;
externint RSIPeriod = 7;
externbool Alerts = TRUE;
double buffer_1[];
double buffer_2[];
double arrow_1[];
double arrow_2[];
int a = 0;
int b = 0;
double x = 0.0;
double y = 0.0;
int init() {
SetIndexStyle(0, DRAW_LINE);
SetIndexBuffer(0, buffer_1);
SetIndexStyle(1, DRAW_LINE);
SetIndexBuffer(1, buffer_2);
SetIndexStyle(2, DRAW_ARROW, 0,4);
SetIndexArrow(2, 217);
SetIndexBuffer(2, arrow_1);
SetIndexEmptyValue(2, 0.0);
SetIndexStyle(3, DRAW_ARROW, 0,4);
SetIndexArrow(3, 218);
SetIndexBuffer(3, arrow_2);
SetIndexEmptyValue(3, 0.0);
return (0);
}
int deinit() {
return (0);
}
int start() {
int counted_bars = IndicatorCounted();
double irsi_1 = 0;
bool c = FALSE;
double price_10 = 0;
if (counted_bars < 0) return (-1);
if (counted_bars > 0) counted_bars--;
int li_0 = Bars - counted_bars;
for (int i = 0; i < li_0; i++) {
buffer_1[i] = iMA(NULL, 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i);
buffer_2[i] = iMA(NULL, 0, SlowEMA, 0, MODE_EMA, PRICE_CLOSE, i);
irsi_1 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, i);
x = buffer_1[i] - buffer_2[i];
if (x > 0.0 && irsi_1 > 50.0) a = 1;
elseif (x < 0.0 && irsi_1 < 50.0) a = 2;
if (a == 1 && b == 2) {
arrow_2[i - 1] = High[i - 1] - 5.0 * Point;
c= TRUE;
price_10 = Ask;
} else {
if (a == 2 && b == 1) {
arrow_1[i - 1] = Low[i - 1] - 5.0 * Point;
c = TRUE;
price_10 = Bid;
}
}
b = a;
y = x;
}
if (Alerts && c) {
PlaySound("alert.wav");
if (b == 2) Alert(Symbol()," M",Period(),"Buy at " + price_10 + "!!", "Entry Point", 0);
elseif (b == 1) Alert(Symbol()," M",Period(),"Sell at " + price_10 + "!!", "Entry Point", 0);
c= FALSE;
}
return (0);
}
Herr Mladen, bitte schauen Sie sich die unten stehenden Codes an, der Pfeil erscheint erst in der Live-Ansicht, wenn ich den Zeitrahmen gewechselt habe.
//+------------------------------------------------------------------+//| signalindicator.mq4 |//| Copyright 2016, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2016, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"#property strict#property indicator_chart_window#property indicator_buffers4#property indicator_color1 Blue
#property indicator_color2 Yellow
#property indicator_color3 Aqua
#property indicator_color4 Red
#property indicator_color4 Red
externint FastEMA = 5;
externint SlowEMA = 6;
externint RSIPeriod = 7;
externbool Alerts = TRUE;
double buffer_1[];
double buffer_2[];
double arrow_1[];
double arrow_2[];
int a = 0;
int b = 0;
double x = 0.0;
double y = 0.0;
double alertshow;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init()
{
SetIndexStyle(0, DRAW_NONE);
SetIndexBuffer(0, buffer_1);
SetIndexStyle(1, DRAW_NONE);
SetIndexBuffer(1, buffer_2);
SetIndexStyle(2, DRAW_ARROW, 0,4);
SetIndexArrow(2, 241);
SetIndexBuffer(2, arrow_1);
SetIndexEmptyValue(2, 0.0);
SetIndexStyle(3, DRAW_ARROW, 0,4);
SetIndexArrow(3, 242);
SetIndexBuffer(3, arrow_2);
SetIndexEmptyValue(3, 0.0);
return (0);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int deinit()
{
return (0);
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
int counted_bars = IndicatorCounted();
double irsi_1 = 0;
int li_0;
bool c = FALSE;
double price_10 = 0;
if (counted_bars < 0) return (-1);
if (counted_bars > 0) counted_bars--;
if(counted_bars==0)
li_0=MathMin(Bars-10-1,Bars-MathMax(FastEMA,SlowEMA)-1);
else
li_0=Bars-counted_bars;
for (int i = 0; i < li_0; i++) {
buffer_1[i] = iMA(NULL, 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i);
buffer_2[i] = iMA(NULL, 0, SlowEMA, 0, MODE_EMA, PRICE_CLOSE, i);
irsi_1 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, i);
x = buffer_1[i] - buffer_2[i];
if (x > 0.0 && irsi_1 > 50.0) a = 1;
elseif (x < 0.0 && irsi_1 < 50.0) a = 2;
if (a == 1 && b == 2) {
arrow_2[i - 1] = High[i - 1] - 5.0 * Point;
c= TRUE;
price_10 = Ask;
} else {
if (a == 2 && b == 1) {
arrow_1[i - 1] = Low[i - 1] - 5.0 * Point;
c = TRUE;
price_10 = Bid;
}
}
b = a;
y = x;
}
if (Alerts && c) {
PlaySound("alert.wav");
if (b == 2)
if(alertshow<Time[1] && counted_bars!=0)
{
PlaySound("news.wav");// buy wavAlert(Symbol()," buy signal");
alertshow=Time[1];
}
elseif (b == 1) if(alertshow<Time[1] && counted_bars!=0)
{
PlaySound("news.wav");// buy wavAlert(Symbol()," sell signal");
alertshow=Time[1];
}
}
//----return(prev_calculated);
}
//+------------------------------------------------------------------+
Herr Mladen, bitte schauen Sie sich die unten stehenden Codes an, der Pfeil erscheint erst in der Live-Ansicht, wenn ich den Zeitrahmen gewechselt habe.
kapoo
Wie ich Ihnen schon mehrfach gesagt habe: dieser Indikator ist ein schlechter Repainter und deshalb macht er, was er macht. Mein bester Rat ist, dass Sie ihn vergessen.
mladen & mrtools
Ich habe einen EA, der sich selbst mit Trades sprengt. Ich benötige Hilfe bei der Erstellung eines Void oder einer Funktion, die zu einem bestehenden EA hinzugefügt werden kann. Diese Funktion muss adressieren:
input bool doBasketExit = true; // Prüfung auf Basket Exit Bedingungen
input double BasketTP = 250.0; // Basket Take Profit (Kontowährung) Das Chart-Paar
input double BasketSL = -100.0; // Basket Stop Loss (Kontowährung) Das Chart-Paar
Ich betreibe 9 Paare/Charts mit aggressivem EA auf dem H1 und möchte auf jedem der 9 Charts ein paar-spezifisches Basket Trading.
Hier ist, was mir gerade passiert ist. 9 Charts laufen, 3 Charts sind im Handel mit, natürlich, 3 separate Paare, die jeweils mit 15 Trades, ja 45 Trades offen, 2 sind im Gewinn & eine ist schlecht verlieren. Ich suche nach einer Möglichkeit, jede Gruppe/jedes Paar der 15 separat zu addieren und jede Gruppe gegen einen Basket SL & TP Grenzen zu reiben. Ich fand einen Korb eingerichtet, aber natürlich braucht es Verfeinerung. Der Trick ist, das gleiche Paar aus der Spalte Order Profit Trade zu addieren. Indem ich auf einem Chart mit einem bestimmten Paar bin, dachte ich, ich hätte eine Lücke gefunden, aber es ist ziemlich kompliziert. Die Funktion muss irgendwie lesen die OrderProfit von Pair???
Siehe meinen Code als ein schlechtes Beispiel;
void closeTrades( CURRENCY* ¤cies[] ) {
// Prüfung auf Basket Exit
if ( doBasketExit ) {
double basketProfit = getBasketProfit();
if ( ( ( BasketTP > 0.0 ) && ( basketProfit > BasketTP ) ) ||
( BasketSL < 0.0 ) && ( basketProfit < BasketSL ) ) ) {
closeAll();
}
}
double getBasketProfit() {
double basketProfit = 0.0;
for (int iOrder=OrdersTotal()-1; iOrder >= 0; iOrder--) {
if (OrderSelect(iBestellung,SELECT_BY_POS,M ODE_TRADES)) {
if ( OrderMagicNumber() == MagicNumber ) {
wenn ( (OrderType() == OP_BUY) || (OrderType() == OP_SELL) ) {
basketProfit += OrderProfit() + OrderSwap() + OrderCommission();
}
}
}
}
return(basketProfit);
}
void closeAll() {
double closePreis;
string symbolName;
int Ergebnis;
for (int iOrder=OrdersTotal()-1; iOrder >= 0; iOrder--) {
if (OrderSelect(iOrder,SELECT_BY_POS,M ODE_TRADES)) {
if ( OrderMagicNumber() == MagicNumber ) {
wenn ( (OrderType() == OP_BUY) || (OrderType() == OP_SELL) ) {
symbolName = OrderSymbol();
closePrice = ( OrderType() == OP_BUY ) ? MarketInfo( symbolName, MODE_BID ) : MarketInfo( symbolName, MODE_ASK );
Ergebnis = OrderCloseReliable(OrderTicket(), OrderLots(), closePrice, 50 );
}
}
Ich wäre Ihnen sehr dankbar, wenn Sie sich das ansehen würden.
Danke
Ray
Ray
Sie brauchen eine Art "Mutter-EA", der alle magischen Zahlen kennt, die von anderen EAs gehandhabt werden, und der dann die von Ihnen benötigten "On-Group"-Operationen durchführt
Versuchen Sie, Folgendes zu tun:
Anstelle von
Ray
Sie brauchen eine Art "Mutter-EA", der alle magischen Zahlen kennt, die von anderen EAs gehandhabt werden, und der dann die von Ihnen benötigten Operationen "auf der Gruppe" ausführt
mladen
danke für Ihre Gedanken zu diesem Thema. Also NEIN.
Nochmals vielen Dank
Ray
Ich habe versucht, den Pfeil nach dem Schließen der Signalkerze erscheinen zu lassen, um ein erneutes Malen zu vermeiden, aber alles ohne Erfolg.bitte helfen Sie mir MR. TOOLS und MLADEN, unten ist der Code.
Hallo mladen
Ich brauche ITM X-Gen Daily Scalper Indicator.mq4
Helfen Sie mir
Danke
Hallo mladen
Ich brauche ITM X-Gen Daily Scalper Indicator.mq4
Helfen Sie mir
Danke
alozard
Dieser Indikator ist ein umbenannter Indikator meiner Centered TMA Bands. Sie können ihn hier finden: https: //www.mql5.com/en/forum/181241
Herr Mladen, bitte schauen Sie sich die unten stehenden Codes an, der Pfeil erscheint erst in der Live-Ansicht, wenn ich den Zeitrahmen gewechselt habe.
Herr Mladen, bitte schauen Sie sich die unten stehenden Codes an, der Pfeil erscheint erst in der Live-Ansicht, wenn ich den Zeitrahmen gewechselt habe.
kapoo
Wie ich Ihnen schon mehrfach gesagt habe: dieser Indikator ist ein schlechter Repainter und deshalb macht er, was er macht. Mein bester Rat ist, dass Sie ihn vergessen.