Hallo! Ich habe versucht, einen Indikator zu erstellen, der 2 Symbole verwendet (z.B. EURUSD und GBPUSD), er zeichnet nicht (gibt einen Fehler 4806) ... Ich erhalte Indikator-Handles in der OnInit-Funktion (z.B. iRSI) jedes Symbols, ich kopiere Indikator-Daten in Puffer und führe weitere Operationen mit ihnen durch ...Es empfängt Indikatordaten für ein Symbol (das gleiche Symbol, das mit dem Symbol auf dem Diagramm übereinstimmt, an das ich den Indikator anhänge), es ist ok, aber die Indikatordaten für das zweite Symbol werden nicht empfangen ... D.h. es empfängt Daten nur für das Symbol, das mit dem Symbol auf dem Diagramm übereinstimmt, an das es angehängt ist ... was mache ich falsch?
FinEngineer: Hallo! Ich habe versucht, einen Indikator zu erstellen, der 2 Symbole verwendet (z.B. EURUSD und GBPUSD), er zeichnet nicht (gibt einen Fehler 4806) ... Ich erhalte Indikator-Handles in der OnInit-Funktion (z.B. iRSI) jedes Symbols, ich kopiere Indikator-Daten in Puffer und führe weitere Operationen mit ihnen durch ...Es empfängt Indikatordaten für ein Symbol (das gleiche Symbol, das mit dem Symbol auf dem Diagramm übereinstimmt, an das ich den Indikator anhänge) es ist ok, aber Indikatordaten für das zweite Symbol werden nicht empfangen ... d.h., es empfängt Daten nur für das Symbol, das mit dem Symbol auf dem Diagramm übereinstimmt, an das der Indikator angehängt ist ... was mache ich falsch?
Zeigen Sie mir also den Teil des Codes, der das Problem verursacht hat.
Ich poste den ganzen Code, weil nichts funktioniert, auf mql4 war alles viel einfacher, vielleicht ist es nur, weil ich nicht daran gewöhnt bin... diese Handles und Hilfspuffer töten mein Gehirn.
Ich denke, die Bedeutung ist klar (Unterschied in rsi von 2 korrelierenden Symbolen), bitte helfen....point aus den Fehlern?
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
Wenn der MACD an ein EURUSD-Diagramm angehängt ist, wird alles gezeichnet, wenn er an ein anderes Diagramm angehängt ist, erscheint der Fehler 4806... Wie kann ich es so einrichten, dass ich in diesem Indikator so viele Symbole verwenden kann, wie ich möchte?
Wenn Sie mir sagen können, wie ich den zuvor geposteten Indikator zum Laufen bringen kann, wäre ich Ihnen sehr dankbar.
Wenn Sie das nicht wollen, müssen Sie die Variablen richtig zählen.
Ich habe die Idee der Schablon-Datei mit gemischtem Erfolg, brachte es auf meine Bedingungen ein wenig und es gesetzt Stops und Gewinne. Allerdings gibt es für mich eine bedeutende Blockade - sie werden auf die nächste Kerze gesetzt, nicht auf einen Tick. Hier ist der Teil des EA.
Mit mehr oder weniger Erfolg habe ich das Wesentliche der Schablon-Datei verstanden, sie ein wenig an meine Bedingungen angepasst und Hurra - Stopps und Gewinne sind gesetzt. Allerdings gibt es für mich eine bedeutende Blockade - sie werden auf die nächste Kerze gesetzt, nicht auf einen Tick. Hier ist ein Teil des Codes.
inputdouble TP = 0.003;
inputdouble STR = 0.0012;
inputdouble TR = 0.0002;
//=============================================== //Един вид извикване на модификация на отворената позицияdouble buy_trail = 0;
double sel_trail = 0;
double SL,T_P,Open;
ulong L_S;
Ну ладно-обяснения:
if(PositionSelect(_Symbol)){//Ест ли позиция по символа
Open = PositionGetDouble(POSITION_PRICE_OPEN);//цена опен для поза
SL = PositionGetDouble(POSITION_SL);//цена стоп для поза
T_P = PositionGetDouble(POSITION_TP);//цена тейк для поза
Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID);//цена бид
Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK);//цена аск
L_S = SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);//стоп ниво,если ест такое-оно в пункты
buy_trail = NormalizeDouble(Bid - Open,Digits());//вычисляем разстояние от цена бид и цена опен позиции-ето для бай
sel_trail = NormalizeDouble(Open - Ask,Digits());//вычисляем разстояние от цена опен позиции и цена аск-ето для селif(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)//если ест бай поза
{
if(buy_trail > STR)//если разстояние болше указаное
{
if(NormalizeDouble((Bid - STR),Digits()) >= Open && Open > SL)
//если цена бид минус указаное разстояние болше щем цена опен и цена опен болше цена стоп-вызиваем модификация//сама модификация-для стоп будет цена опен,цена тейк не меняем.
{
ModifyPosition(_Symbol,Open,T_P);
}
if(NormalizeDouble((Bid - TR),Digits()) > SL && Open <= SL)
//если цена бид минус указаное разстояние TR = 0.0002 болше уже от новый стоп(который поменяли уже) и цена опен менше новый стоп //вызиваем модификация//сама модификация - для стоп будет прошлый стоп минус стоп ниво* _Point(что б стали пипси) плюс указаное TR,цена тейк не меняем.//Т.е. будем двигат стоп через каждые 2 пипса
{
ModifyPosition(_Symbol,NormalizeDouble(((SL - L_S * _Point) + TR),Digits()),T_P);
}
}
}
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
{
if(sel_trail > STR)
{
if(NormalizeDouble((Ask + STR),Digits()) <= Open && Open < SL)
{
ModifyPosition(_Symbol,Open,T_P);
}
if(NormalizeDouble((Ask + TR),Digits()) < SL && Open >= SL)
{
ModifyPosition(_Symbol,NormalizeDouble(((SL +L_S * _Point)- TR),Digits()),T_P);
}
}
}
}
//===============================================
Der Code sollte immer Bedingungen für einige Aktionen enthalten, aber alles sollte überprüft werden und eine gewisse Logik haben.
Wenn Sie helfen wollen, drucken Sie(" ", ); ) und sehen Sie sich das Ergebnis an.
Die Beschreibungen sind alle eindeutig und funktionieren. Dies ist jedoch eine Abwandlung von "breakeven" und "trailing". Ich sollte eine Modifikation schreiben, um StopLimit und TakeProfit nach Ordereröffnung zu setzen, d.h.
1. Auftragseröffnung
--------
2. Änderung der Haltelinie (diese ist noch nicht erreicht!)
Gibt es irgendwelche MQL5-Entwickler in diesem Thread!? Habe ich eine Frage in der falschen Branche gestellt? Dann sagen Sie mir, wie ich eine Frage an die Entwickler stellen kann? Die obige Frage ist elementar für einen erfahrenen Programmierer...
Hallo! Ich habe versucht, einen Indikator zu erstellen, der 2 Symbole verwendet (z.B. EURUSD und GBPUSD), er zeichnet nicht (gibt einen Fehler 4806) ... Ich erhalte Indikator-Handles in der OnInit-Funktion (z.B. iRSI) jedes Symbols, ich kopiere Indikator-Daten in Puffer und führe weitere Operationen mit ihnen durch ...Es empfängt Indikatordaten für ein Symbol (das gleiche Symbol, das mit dem Symbol auf dem Diagramm übereinstimmt, an das ich den Indikator anhänge) es ist ok, aber Indikatordaten für das zweite Symbol werden nicht empfangen ... d.h., es empfängt Daten nur für das Symbol, das mit dem Symbol auf dem Diagramm übereinstimmt, an das der Indikator angehängt ist ... was mache ich falsch?
Ich poste den ganzen Code, weil nichts funktioniert, auf mql4 war alles viel einfacher, vielleicht ist es nur, weil ich nicht daran gewöhnt bin... diese Handles und Hilfspuffer töten mein Gehirn.
Ich denke, die Bedeutung ist klar (Unterschied in rsi von 2 korrelierenden Symbolen), bitte helfen....point aus den Fehlern?
#property copyright "Copyright 2012, MetaQuotes Software Corp.Fehler Nr. 1
Nichtverwendung der SRC-Taste
Ein solcher Fehler tritt z. B. auf, wenn Sie einen benutzerdefinierten Standard-MACD-Indikator nehmen und die folgende Zeile ändern
ExtFastMaHandle=iMA(NULL,0,InpFastEMA,0,MODE_EMA,InpAppliedPrice);
zu
ExtFastMaHandle=iMA("EURUSD",0,InpFastEMA,0,MODE_EMA,InpAppliedPrice);
Wenn der MACD an ein EURUSD-Diagramm angehängt ist, wird alles gezeichnet, wenn er an ein anderes Diagramm angehängt ist, erscheint der Fehler 4806... Wie kann ich es so einrichten, dass ich in diesem Indikator so viele Symbole verwenden kann, wie ich möchte?
Wenn Sie mir sagen können, wie ich den zuvor geposteten Indikator zum Laufen bringen kann, wäre ich Ihnen sehr dankbar.
Lester: Hier habe ich eine Vorlage eingefügt, in der sich eine Änderung befindet - ich habe Ihnen gezeigt, wie man krabbelt.
https://www.mql5.com/ru/forum/6343/page73
Wenn Sie das nicht wollen, müssen Sie die Variablen richtig zählen.
Ich habe die Idee der Schablon-Datei mit gemischtem Erfolg, brachte es auf meine Bedingungen ein wenig und es gesetzt Stops und Gewinne. Allerdings gibt es für mich eine bedeutende Blockade - sie werden auf die nächste Kerze gesetzt, nicht auf einen Tick. Hier ist der Teil des EA.
Mit mehr oder weniger Erfolg habe ich das Wesentliche der Schablon-Datei verstanden, sie ein wenig an meine Bedingungen angepasst und Hurra - Stopps und Gewinne sind gesetzt. Allerdings gibt es für mich eine bedeutende Blockade - sie werden auf die nächste Kerze gesetzt, nicht auf einen Tick. Hier ist ein Teil des Codes.
Der Code sollte immer Bedingungen für einige Aktionen enthalten, aber alles sollte überprüft werden und eine gewisse Logik haben.
Wenn Sie helfen wollen, drucken Sie(" ", ); ) und sehen Sie sich das Ergebnis an.
Die Beschreibungen sind alle eindeutig und funktionieren. Dies ist jedoch eine Abwandlung von "breakeven" und "trailing". Ich sollte eine Modifikation schreiben, um StopLimit und TakeProfit nach Ordereröffnung zu setzen, d.h.
1. Auftragseröffnung
--------
2. Änderung der Haltelinie (diese ist noch nicht erreicht!)
------
3 Modifikation für Breakeven
4. die Änderung des Trailing-Stops
5. die Bestellung abschließen
Sie können Punkt 2 verwenden, um die Reihenfolge zu ändern, aber nur zu Beginn des nächsten Taktes.
Es wird eine Funktion zum Öffnen von eats geschrieben: