ich würde gerne supply and demand auf meinen chart mt4 das es automatisch zeichnet in jeden Time frame. Ich Trade schon länger aber habe mich nie mit Programmieren beschäftigt. Ich würde mich für jede Hilfe freuen und danke im Voraus!
Oder jemand kann mir mein custom supply and demand indicator programmieren gegen bezahlung!
Hallo, ich zeichne öfter Rechtecke i d Chart ein und stelle fest, dass diese nicht gespeichert werden. Wenn ich die Zeiteinheit ändere oder den mt4 schliesse, sind die Rechtecke verschwunden. Was kann ich tun? Habe die neueste Version auf win11.
Ich würde gern wissen, ob hier wer mit dem Stereo Trader für den MT5 vertraut ist, bzw. mir bei der Erstellung eines EA für den Stereo Trader helfen kann ?
Hallo,
ich will aus einer Trendlinie den 2. Punkt ermitteln. Dieser Punkt liegt in der Zukunft. Die Zeit bekomme ich raus, aber dann versuche ich die Kerzennummer über iBarShift aus zu lesen und bekomme immer eine 0 raus. Anscheinend gibt iBarShift keine negativen Zahlen aus und ich weis nicht an welcher Kerze in der Zukunft dieser Punkt liegt.
Kann mir hier jemand helfen wie ich drauf komme?
Anbei ein Bild zur Veranschaulichung.
Hallo liebe Leute,
ich suchen einen Session Indikator bei dem man die Zeitzonen einstellen kann und ausserdem einen Fractal Indikator der mir 3er Fractals anzeigt, der verhandene im MT5 macht das nicht und den kann man scheinbar auch nicht verändern, so wie es bei Tradingview machbar ist.
Ich möchte selbstständig eine Expert Advisor schreiben, um besser MQL5 zu lernen.
Programmier-Grundkenntnisse besitze ich bereits, mein Wissen ist in manchen Bereichen jedoch lückenhaft.
Ich will Werte des aktuellen Up und Down-Fractals des folgenden Indikator in den Expert Advisor einbinden.
Leider schaffe ich es nicht und weiß nicht, woran es liegt.
Hier der Code des Indikators:
//+------------------------------------------------------------------+
//| X-bars_Fractals.mq5 |
//| Copyright 2011, Rone. |
//| rone.sergey@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, Rone."
#property link "rone.sergey@gmail.com"
#property version "1.00"
#property description "The indicator allows to separately set the number of bars from the left and right of the fractal. Well suited "
#property description "to define local and global extremums."
//--- indicator buffers
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
//--- plot UpFractals
#property indicator_label1 "Up Fractals"
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrDodgerBlue
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- plot DnFractals
#property indicator_label2 "Down Fractals"
#property indicator_type2 DRAW_ARROW
#property indicator_color2 clrTomato
#property indicator_style2 STYLE_SOLID
#property indicator_width2 1
//--- input parameters
input int InpLeftSide = 3; // Number of bars from the left of fractal
input int InpRightSide = 3; // Number of bars from the right of fractal
//--- indicator buffers
double UpFractalsBuffer[];
double DnFractalsBuffer[];
//--- global variables
int minRequiredBars;
int leftSide, rightSide;
int maxSide;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit() {
//---
if ( InpLeftSide < 1 ) {
leftSide = 2;
printf("The \"Number of bars from the left of fractal\" parameter is specified incorrectly: %d. the: %d. value will be used",
InpLeftSide, leftSide);
} else {
leftSide = InpLeftSide;
}
if ( InpRightSide < 1 ) {
rightSide = 2;
printf("The \"Number of bars from the right of fractal\" parameter is specified incorrectly: %d. the: %d. value will be used",
InpRightSide, rightSide);
} else {
rightSide = InpRightSide;
}
//---
minRequiredBars = leftSide + rightSide + 1;
maxSide = int(MathMax(leftSide, rightSide));
//---
SetIndexBuffer(0, UpFractalsBuffer, INDICATOR_DATA);
SetIndexBuffer(1, DnFractalsBuffer, INDICATOR_DATA);
//---
PlotIndexSetInteger(0, PLOT_ARROW, 217);
PlotIndexSetInteger(1, PLOT_ARROW, 218);
//---
PlotIndexSetInteger(0, PLOT_ARROW_SHIFT, -10);
PlotIndexSetInteger(1, PLOT_ARROW_SHIFT, 10);
//---
for ( int i = 0; i < 2; i++ ) {
PlotIndexSetInteger(i, PLOT_DRAW_BEGIN, minRequiredBars);
PlotIndexSetDouble(i, PLOT_EMPTY_VALUE, 0.0);
}
//---
IndicatorSetInteger(INDICATOR_DIGITS, _Digits);
//---
IndicatorSetString(INDICATOR_SHORTNAME, "X-bars Fractals ("+(string)leftSide+", "+(string)rightSide+")");
//---
return(0);
}
//+------------------------------------------------------------------+
//| Check if is Up Fractal function |
//+------------------------------------------------------------------+
bool isUpFractal(int bar, int max, const double &High[]) {
//---
for ( int i = 1; i <= max; i++ ) {
if ( i <= leftSide && High[bar] < High[bar-i] ) {
return(false);
}
if ( i <= rightSide && High[bar] <= High[bar+i] ) {
return(false);
}
}
//---
return(true);
}
//+------------------------------------------------------------------+
//| Check if is Down Fractal function |
//+------------------------------------------------------------------+
bool isDnFractal(int bar, int max, const double &Low[]) {
//---
for ( int i = 1; i <= max; i++ ) {
if ( i <= leftSide && Low[bar] > Low[bar-i] ) {
return(false);
}
if ( i <= rightSide && Low[bar] >= Low[bar+i] ) {
return(false);
}
}
//---
return(true);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
int startBar, lastBar;
//---
if ( rates_total < minRequiredBars ) {
Print("Not enough data to calculate");
return(0);
}
//---
if (prev_calculated < minRequiredBars) {
startBar = leftSide;
ArrayInitialize(UpFractalsBuffer, 0.0);
ArrayInitialize(DnFractalsBuffer, 0.0);
}
else {
startBar = rates_total - minRequiredBars;
}
//---
lastBar = rates_total - rightSide;
for ( int bar = startBar; bar < lastBar && !IsStopped(); bar++ ) {
//---
if ( isUpFractal(bar, maxSide, high) ) {
UpFractalsBuffer[bar] = high[bar];
} else {
UpFractalsBuffer[bar] = 0.0;
}
//---
if ( isDnFractal(bar, maxSide, low) ) {
DnFractalsBuffer[bar] = low[bar];
} else {
DnFractalsBuffer[bar] = 0.0;
}
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
Hallo. Versuche mich an einem EA. Aber leider nimmt er die trade.Sell und trade.buy Funktion leider nicht. Könnte mir dabei jemand behilflich sein wo mein Fehler liegt? Hier der Code.
#include <Trade\Trade.mqh>
CTrade trade;
input int stopLossPips = 150; // Stop Loss in Pips
input int takeProfitPips = 200; // Take Profit in Pips
input int trailStopPips = 10; // Trailing Stop in Pips
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// Initialize your EA here
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
// Deinitialize your EA here
}
// Retrieve the current Ask price
if (signal =="buy" && PositionsTotal()<1)
{
// Place buy order here using Ask
trade.Buy(0.10,NULL,Ask,(Ask-200 * _Point),(Ask+150 * _Point),NULL, stopLoss, takeProfit, trailingStop);
}
}
// Retrieve the current Bid price
if (signal =="sell" && PositionsTotal()<1)
{
// Place sell order here using Bid
trade.Sell(0.10,NULL,Bid,(Bid+200 * _Point),(Bid-150 * _Point),NULL, stopLoss, takeProfit, trailingStop);
}
}
}
Ich bin beileibe kein Profi im programmieren aber habe gewisse Grundkenntisse die ich hier ausbauen möchte. Ziel ist es funktionierende und profitable EA`s
zu erstellen.
Und mit hoher Wahrscheinlichkeit werde ich viel Hilfe benötigen
ich bin neu hier. Ich möchte gerne den Metatrader 4 benutzen, um den Dax40 zu analysieren.
Meine Fragen ist, kann man den Chart in Metatrader "übersichtlicher machen".
Ich hätte gerne sichtbare Abgrenzungen zwischen den einzelnen Tagen durch senkrechten Linie die automatisch eingefügt werden.
Wie man das auf den Bild sehen kann von CMC Markets.
Gibt es da vielleicht entsprechende Plugins oder ähnliches, so dass ich den Metatrader entsprechend einstellen kann?
ist es eigentlch möglich (oder vielleicht gibt es das schon), dass bei jeder order automatisch SL oder TP vom bekommenen Preis eingestellt wird?
Ich meine das so, dass ich irgendwie vorweg einstellen kann, wieviele pips vom bekommenen Kurs dann SL und TP sein soll?
Es geht darum, dass wenn man beim news trading bis zu den letzten Sekunden wartet mit der Order Aufgabe, man keine Zeit hat SL oder TP händisch einzustellen.
Das heisst, ich möchte schon vorweg definieren, das bei einem beliebigen Preis, welchen ich mit dem drücken der Kauf Order Taste bekomme, automatisch zum Beispiel 10 pip SL und 15 pips TP festgesetzt werden, unabhängig davon, welchen Preis ich bekomme.
Ein Print gibt die richtigen Werte aus, das Loop funktioniert korrekt, wie man das in ein Komma separiertes CSV speichert, liegt leider über mein Programmierer Können
wo kann man im Metatrader 4 die Ticker Daten einsehen? Da gibt es wo einen Menüpunkt wo man die Kurse zu jeder Tickerbewegung nachsehen kann (leider vergessen wo das war),
Hallo,
ich hoffe mir kann jemand weiter helfen.
In meinem EA habe ich einen OrderClose Befehl, der unter bestimmten Umständen ausgeführt werden soll.
Es kann sein, dass es (ich bleibe in meinem Bsp. mal bei BUY() Positionen), sich mal um 2-3 Positionen handelt, es kann sich aber auch mal um 20-21 Positionen auf einmal handeln.
Was mir aufgefallen ist, manchmal kommt für einzelne Positionen die Fehlermeldung 3 (invalid trade parameters), leider kann ich nicht strukturell raus finden warum.
Anbei ist mal mein Code, für den OrderClose Befehl, vlt. hat jemand von euch eine Idee, warum es bei vereinzelnden Positionen zu der Fehlermeldung kommt?
Oder ist mein Code schlecht/fehlerhaft?
ich möchte gerne einen tradekopierer selber programmieren, NUR leider fehlt mir dazu jeglicher ansatz. Ich habe keine vorstellung davon wie zwei mt4 miteinander kommunizieren können. Das es auf dem markt gute kopierer gibt, ist mir klar und ich habe auch schon diverse genutzt! Der von fx-blue z.b. ist ein super tool. Aber ich möchte so ein ding selber bauen, damit im journal nur entsprechend meine eigenen, gewollten daten eingetragen werden!
der kopierer soll auf einem PC bzw. vps laufen, also beide mt4 auf einem computer! nebeneinander sozusagen!
habt ihr einen ansatz? geht es einfach nur mit 2 eas, sprich einem sender und einem empfänger? Und wenn ja, wie tauschen die sich aus? könnt ihr mir helfen? dazu habe ich keine idee. Ich bin für alle vorschläge dankbar....
Buchhalterisch ist es nun so, wenn wir den Account in Euro führen. Erst in JPY wechseln müssen und dann den eigentlichen Trade USD/JPY durch führen also mit unserem Yen Dollars kaufen.
Was mich jetzt interessiert woher bekommen ich den Euro Referenzkurs der dem USD/JPY Trend zu Grunde liegt. Wird der irgendwo ausgewiesen, kann man ihn irgendwie abgreifen?
double spreadPoints = MarketInfo(symbol, MODE_SPREAD) /MathPow(10,MarketInfo(symbol,MODE_DIGITS));
if(spreadPoints <= 0)
{
if(debug)
Print(symbol + " Spread <=0. Symbol No. "+(string)i+ " from "+ (string)totalSymbols);
continue;
} // Skip symbols with invalid spreads
[...]
Ich prüfe anhand des Spreads ob der Wert handbar ist, in der Annahme das bei kleiner gleich 0 kein aktueller Handel stattfindet. Tatsächlich filtert (skipped) er bei marketwatch = false, auch Symbole heraus die einen aktuellen Spread > 0 haben heraus. Hat jemand eine Idee an was das liegen kann?