Hallo zusammen! Ich habe einen Indikator, der in mql5 geschrieben wurde und den ich gerne zur Erstellung eines EAs verwenden würde. Wenn ich einen EA erstelle, kann ich die Puffer, die ich brauche, nicht finden, es fühlt sich an, als hätte ich sie gar nicht. So mache ich es:
{
//--- indicator buffers mapping SetIndexBuffer(2,BuyBuffer,INDICATOR_DATA);
ResetLastError();
double handle3 = 0;
double handle4 = 0;
double UP = 0;
double DW = 0;
for (int i=1; i<11; i++)
{
UP = iCustom(NULL,0,"StepMA_NRTR",Length,Kv,StepSize,Percentage,Switch,Shift,2,i);
DW = iCustom(NULL,0,"StepMA_NRTR",Length,Kv,StepSize,Percentage,Switch,Shift,3,i);
if (handle3==0)
if (UP != EMPTY_VALUE)
handle3=1;
if (handle4==0)
if (UP != EMPTY_VALUE)
handle4=1;
if (handle3>0 && handle4)
break;
}
Comment(DoubleToString(handle3,Digits())+"\n"+DoubleToString(handle3,Digits()));
return(INIT_SUCCEEDED);
}
Egal, wie ich eine iCustom-Zeile ändere oder hinzufüge - ich erhalte immer dasselbe im Protokoll:
Hallo zusammen! Ich habe einen Indikator, der in mql5 geschrieben wurde und den ich gerne zur Erstellung eines EAs verwenden würde. Wenn ich einen EA erstelle, kann ich die Puffer, die ich brauche, nicht finden, es fühlt sich an, als hätte ich sie gar nicht. Ich muss es auf diese Weise tun:
Egal, wie ich eine iCustom-Zeile ändere oder hinzufüge - ich erhalte immer dasselbe im Protokoll:
Es hat sich herausgestellt, dass ich einen Stop-Loss benötige - (konnte nicht herausfinden, warum er sofort geschlossen wurde), fügte einen Stop-Loss hinzu
Vielen Dank !!!
Sie haben gute Arbeit geleistet, aber ich bin an einem völlig anderen Algorithmus für den EA interessiert. Ich möchte ein einfaches Martingal (Sieb) mit diesen anpassbaren Parametern verwenden:
input group "======== МАРТИН ========";
inputint MMType = 1; // 1 - вкл. , 2 - выкл.
inputdouble Multiplikator = 1.667; // множитель следующего лота
inputdouble Step = 150.0; // Расстояние между ордерами
input group "==== МАНИ МЕНЕДЖМЕНТ ====;
inputbool LotConst = true; // фиксированный - true, или от баланса - falseinput group "-: фиксированный лот :--";
inputdouble Lot = 0.01; // первый фиксированный лот, если МАРТИН включен
input group "---: лот от баланса :---";
inputdouble RiskPercent = 30.0; // первый лот в процентах от баланса, если МАРТИН включен
input group "== ПРИБЫЛЬ В ПУНКТАХ ===";
inputdouble TakeProfit = 56.0; // параметры тейкпрофита в пунктах
input group "========= Шаг ==========";
inputdouble Step = 150.0; // шаг в пунктах между ордерами
input group "===== ОГРАНИЧИТЕЛЬ =====";
inputint MaxTrades = 15; // Максимальное количество ордеров одного направления
input group "=== ПРОСКАЛЬЗОВАНИЕ ====";
inputdouble Slippage = 5.0; // Допустимое проскальзывание на новостях в пунктах
input group "== МАГИЧЕСКИЙ НОМЕР ===";
inputint Magic = 1111111 ; // Идентификатор ордера (Магик №)
, aber fügen Sie den Indikator hinzu, den ich oben angegeben habe. Und verwenden Sie es als Auslöser (false - funktioniert nur in SHORT und true - funktioniert nur in LONG).
Ich habe mich für diesen Indikator entschieden, weil er wie ein gleitender Durchschnitt funktioniert, aber über einige Glättungsfilter und Kursrichtungswechselpunkte verfügt, die als Auslöser für den Expert Advisor verwendet werden können, um nur auf den Trend zu arbeiten, indem die Gewinneinstellungen im Menü verwendet werden.
Und sobald der Take-Profit geschlossen ist, eröffnen wir die nächste Order in der gleichen Richtung (im Trend), bis der Trend vorbei ist und unser Trigger umgeschaltet wird. Wenn ein Auftrag außerhalb des Trends erscheint (in dem Moment, in dem der Trend von einem Zustand in einen anderen wechselt), sollten wir Martins mit Einstellungen aus dem Menü dafür verwenden.
Wenn Sie dabei helfen wollen, einen solchen EA zu schreiben, wäre ich Ihnen sehr dankbar.
Nun zum Thema:
Ich verstehe, dass in meinem Code des Indikators selbst - sind nicht Indikator Puffer, sondern Arrays von Puffern und Sie - in den Expert Advisor brachte sie in den Indikator.
Bitte lassen Sie mich wissen, ob ich es richtig verstanden habe?
Ich habe verstanden, dass in meinem Code des Indikators selbst - nicht Indikator Puffer befinden, aber Arrays von Puffern und Sie - in der Expert Advisor brachte sie zu Indikator.
Bitte teilen Sie mir mit, ob ich das richtig verstanden habe?
Ich bin Autodidakt und kann es nicht erklären, ich habe nur die Funktionen ausgewählt, die ich brauche.
Ich kopiere grundsätzlich die Codes von Vladimir Karputov, vielen Dank! - Wenn Sie irgendwelche Fragen haben, wird er sie Ihnen beantworten.
Bitte sagen Sie mir, von welcher Klasse ich Ihre Klasse erben soll, um alle Methoden dieser Klassen zu nutzen
alle Methoden dieser Klassen innerhalb Ihrer Klasse zu verwenden, ohne Objekte innerhalb Ihrer Klasse zu erstellen?
Vererbung bedeutet, eine Klasse zu erstellen.
Hallo zusammen!
Ich habe einen Indikator, der in mql5 geschrieben wurde und den ich gerne zur Erstellung eines EAs verwenden würde.
Wenn ich einen EA erstelle, kann ich die Puffer, die ich brauche, nicht finden, es fühlt sich an, als hätte ich sie gar nicht.
So mache ich es:
{ //--- indicator buffers mapping SetIndexBuffer(2,BuyBuffer,INDICATOR_DATA); ResetLastError(); double handle3 = 0; double handle4 = 0; double UP = 0; double DW = 0; for (int i=1; i<11; i++) { UP = iCustom(NULL,0,"StepMA_NRTR",Length,Kv,StepSize,Percentage,Switch,Shift,2,i); DW = iCustom(NULL,0,"StepMA_NRTR",Length,Kv,StepSize,Percentage,Switch,Shift,3,i); if (handle3==0) if (UP != EMPTY_VALUE) handle3=1; if (handle4==0) if (UP != EMPTY_VALUE) handle4=1; if (handle3>0 && handle4) break; } Comment(DoubleToString(handle3,Digits())+"\n"+DoubleToString(handle3,Digits())); return(INIT_SUCCEEDED); }Egal, wie ich eine iCustom-Zeile ändere oder hinzufüge - ich erhalte immer dasselbe im Protokoll:
2021.06.26 17:59:42.251 Proba (EURUSD,M15) 1.00000
Und der Kommentar: 1,00000 und wieder 1,00000.
Helfen Sie mir zu verstehen - ist es geeignet für die Erstellung eines EA, oder muss ich es zu verfeinern, oder vielleicht mache ich etwas falsch?Im MT5 wird er anders verwendet. Sehen Sie sich das Beispiel in der Hilfe an.
iCustom
Gibt das Handle des angegebenen benutzerdefinierten Indikators zurück.
https://www.mql5.com/ru/docs/indicators/icustom
Im MT5 wird er anders verwendet. Schauen Sie sich das Beispiel in der Hilfe an.
iCustom
Gibt das Handle des angegebenen benutzerdefinierten Indikators zurück.
https://www.mql5.com/ru/docs/indicators/icustom
Ich fange gerade erst an zu programmieren und bitte Sie, Nachsicht mit mir zu haben.
Ich beginne zu vermuten, dass dies eine zusätzliche Funktion erfordert
Bitte erklären Sie.... wobei .... und wie....?
Hallo zusammen!
Ich habe einen Indikator, der in mql5 geschrieben wurde und den ich gerne zur Erstellung eines EAs verwenden würde.
Wenn ich einen EA erstelle, kann ich die Puffer, die ich brauche, nicht finden, es fühlt sich an, als hätte ich sie gar nicht.
Ich muss es auf diese Weise tun:
Egal, wie ich eine iCustom-Zeile ändere oder hinzufüge - ich erhalte immer dasselbe im Protokoll:
2021.06.26 17:59:42.251 Proba (EURUSD,M15) 1.00000
Und der Kommentar: 1,00000 und wieder 1,00000.
Helfen Sie mir zu verstehen - ist es geeignet für die Erstellung eines EA, oder muss ich es zu verfeinern, oder vielleicht mache ich etwas falsch?Code:
Ergebnis:
Hallo zusammen!
Ich habe einen Indikator - geschrieben in mql5 - den ich gerne zur Erstellung eines EA verwenden würde.
Hier habe ich es gemacht - es scheint zu funktionieren! (wobei gelb für Puffer steht)
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Ich brauche auch einen Stop-Loss(ich konnte nicht herausfinden, warum er sofort geschlossen wurde).
Ich beginne zu vermuten, dass dies eine zusätzliche Funktion erfordert
Das ist richtig. Sie verbinden den Indikator in OnInit, setzen dort Parameter und erhalten sein Handle. Und dann verwenden Sie den CopyBuffer.
https://www.mql5.com/ru/docs/series/copybuffer
Ich habe das gemacht - es scheint zu funktionieren! (wobei gelb für die Puffer steht)
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Es hat sich herausgestellt, dass ich einen Stop-Loss benötige - (konnte nicht herausfinden, warum er sofort geschlossen wurde), fügte einen Stop-Loss hinzu
Vielen Dank !!!
Sie haben gute Arbeit geleistet, aber ich bin an einem völlig anderen Algorithmus für den EA interessiert. Ich möchte ein einfaches Martingal (Sieb) mit diesen anpassbaren Parametern verwenden:
, aber fügen Sie den Indikator hinzu, den ich oben angegeben habe. Und verwenden Sie es als Auslöser (false - funktioniert nur in SHORT und true - funktioniert nur in LONG).
Ich habe mich für diesen Indikator entschieden, weil er wie ein gleitender Durchschnitt funktioniert, aber über einige Glättungsfilter und Kursrichtungswechselpunkte verfügt, die als Auslöser für den Expert Advisor verwendet werden können, um nur auf den Trend zu arbeiten, indem die Gewinneinstellungen im Menü verwendet werden.
Und sobald der Take-Profit geschlossen ist, eröffnen wir die nächste Order in der gleichen Richtung (im Trend), bis der Trend vorbei ist und unser Trigger umgeschaltet wird. Wenn ein Auftrag außerhalb des Trends erscheint (in dem Moment, in dem der Trend von einem Zustand in einen anderen wechselt), sollten wir Martins mit Einstellungen aus dem Menü dafür verwenden.
Wenn Sie dabei helfen wollen, einen solchen EA zu schreiben, wäre ich Ihnen sehr dankbar.
Nun zum Thema:
Ich bin Autodidakt und kann es nicht erklären, ich habe nur die Funktionen ausgewählt, die ich brauche.
Ich kopiere grundsätzlich die Codes von Vladimir Karputov, vielen Dank! - Wenn Sie irgendwelche Fragen haben, wird er sie Ihnen beantworten.
Ich verstehe, dass Sie einen Indikator zum Filtern benötigen!
Sie müssen Ihren Expert Advisor durch diesen Filter laufen lassen