Hier ist der Code für den Expert Advisor, der diesen Indikator TrendToTrend_open verwendet
untenstehender Code
Frage - warum setzt mein Expert Advisor diesen Indikator mit einem Schlusskurs?
//--- входные параметрыinputint LongTrend=14; // Период LongTrendinputint ShortTrend=7; // Период ShortTrendinputint EA_Magic=0; // Magic Number советникаinputdouble Lot=0.02; // Количество лотовinputdouble STR= 0.14;
inputdouble TR= 0.1;
inputdouble TP= 0.55;
//--- глобальные переменныеint TrendToTrend;
int TrendToTrendOpen;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- достаточно ли количество баров для работыif(Bars(_Symbol,_Period)<60) // общее количество баров на графике меньше 60?
{
Alert("На графике меньше 60 баров, советник не будет работать!!");
return(-1);
}
TrendToTrend=iCustom(_Symbol,0,"TrendToTrend",LongTrend,ShortTrend);
TrendToTrendOpen=iCustom(_Symbol,0,"TrendToTrend_open",LongTrend,ShortTrend);
if(TrendToTrend<0||TrendToTrendOpen<0)
{
Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
return(-1);
}
return(0);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- освобождаем хэндлы индикаторовIndicatorRelease(TrendToTrend);
IndicatorRelease(TrendToTrendOpen);
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
staticdatetime Old_Time;
datetime New_Time[1];
bool IsNewBar=false;
// копируем время текущего бара в элемент New_Time[0]int copied=CopyTime(_Symbol,_Period,0,1,New_Time);
if(copied>0) // ok, успешно скопировано
{
if(Old_Time!=New_Time[0]) // если старое время не равно
{
IsNewBar=true; // новый барif(MQL5InfoInteger(MQL5_DEBUGGING)) Print("Новый бар",New_Time[0],"старый бар",Old_Time);
Old_Time=New_Time[0]; // сохраняем время бара
}
}
else
{
Alert("Ошибка копирования времени, номер ошибки =",GetLastError());
ResetLastError();
return;
}
//--- советник должен проверять условия совершения новой торговой операции только при новом бареif(IsNewBar==false)
{
return;
}
//--- Имеем ли мы достаточное количество баров на графике для работыint Mybars=Bars(_Symbol,_Period);
if(Mybars<60) // если общее количество баров меньше 60
{
Alert("На графике менее 60 баров, советник работать не будет!!");
return;
}
return;
}
Können Sie mir bitte sagen, wo die Antwort auf Ihre Frage zu finden ist?
Ich habe einen EA mit zwei Strategien, die den Handel nach unterschiedlichen Prinzipien eröffnen. Sie hat einen gemeinsamen Standpunkt als Endergebnis.
Etwas später muss ich verstehen, wie jede Strategie zu der Position beigetragen hat. Welche Strategie (oder zwei) eröffnete also die Position?
Können Sie mir bitte sagen, wo die Antwort auf Ihre Frage zu finden ist?
Ich habe einen EA mit zwei Strategien, die den Handel nach unterschiedlichen Prinzipien eröffnen. Sie hat einen gemeinsamen Standpunkt als Endergebnis.
Etwas später muss ich verstehen, wie jede Strategie zu der Position beigetragen hat. Welche Strategie (oder zwei) eröffnete also die Position?
Wie kann ich das tun?
Ich danke Ihnen!
Wenn Ihr EA die Möglichkeit hat, eine der Strategien zu deaktivieren und Sie die magische Zahl in den Einstellungen ändern können. Dann sollten Sie zwei EAs in Ihrem Konto hinzufügen und eine der Strategien in jedem von ihnen deaktivieren und unterschiedliche magische Zahlen für Positionen festlegen und dann magische Zahlen in der Historie verwenden, um zu verfolgen, welche mehr Gewinn oder Verlust bringt.
Kino: Wenn der EA die Möglichkeit hat, eine der Strategien zu deaktivieren und Sie die magische Zahl in den Einstellungen ändern können. Dann setzen Sie zwei EAs auf das Konto und deaktivieren Sie eine der Strategien in jedem von ihnen und weisen Sie unterschiedliche magische Zahlen für Positionen zu, und verfolgen Sie dann in der Historie, was mehr Plus oder Minus durch magische Zahlen ergibt.
Vielen Dank für die Antwort. Ich habe durch statische Variablen, die ihren Wert ändern, wenn die Strategie Position offen ist (auf Schließung und Stop-Loss auch Werte ändern). Im Allgemeinen funktioniert dies gut, aber ich verstehe, dass nach dem Neustart des EA es seine Aufträge verlieren wird.
Ich verstehe nicht, warum die Funktion 0 zurückgibt:
int BarsAmountPassed(datetime open_time)
{
datetime time_array[];
int n;
Print("inpupt time=",TimeToString(open_time));
CopyTime(_Symbol,_Period,open_time,TimeCurrent(),time_array);
n=ArraySize(time_array);
Print("number of elements in array=",n);
return(n);
}
Zum Beispiel mit einem Anruf wie diesem:
int bars;
bars=BarsAmountPassed(1365198000);
Print(__FUNCTION__+": Баров прошло с этого времени ",bars);
Ich verstehe nicht, warum die Funktion 0 zurückgibt:
Zum Beispiel mit einem Anruf wie diesem:
n schreibt korrekt, gibt aber 0 zurück.
Seltsam ist, dass, wenn ich den Funktionstyp in short oder double ändere, der berechnete Wert zurückgegeben wird (in diesem Beispiel ist er 4). Aber mit int 0.
Hier ist der Code für den Expert Advisor, der diesen Indikator TrendToTrend_open verwendet
untenstehender Code
Frage - warum setzt mein Expert Advisor diesen Indikator mit einem Schlusskurs?
Hallo!
Können Sie mir bitte sagen, wo die Antwort auf Ihre Frage zu finden ist?
Ich habe einen EA mit zwei Strategien, die den Handel nach unterschiedlichen Prinzipien eröffnen. Sie hat einen gemeinsamen Standpunkt als Endergebnis.
Etwas später muss ich verstehen, wie jede Strategie zu der Position beigetragen hat. Welche Strategie (oder zwei) eröffnete also die Position?
Wie kann ich das tun?
Ich danke Ihnen!
Hallo!
Können Sie mir bitte sagen, wo die Antwort auf Ihre Frage zu finden ist?
Ich habe einen EA mit zwei Strategien, die den Handel nach unterschiedlichen Prinzipien eröffnen. Sie hat einen gemeinsamen Standpunkt als Endergebnis.
Etwas später muss ich verstehen, wie jede Strategie zu der Position beigetragen hat. Welche Strategie (oder zwei) eröffnete also die Position?
Wie kann ich das tun?
Ich danke Ihnen!
Wenn der EA die Möglichkeit hat, eine der Strategien zu deaktivieren und Sie die magische Zahl in den Einstellungen ändern können. Dann setzen Sie zwei EAs auf das Konto und deaktivieren Sie eine der Strategien in jedem von ihnen und weisen Sie unterschiedliche magische Zahlen für Positionen zu, und verfolgen Sie dann in der Historie, was mehr Plus oder Minus durch magische Zahlen ergibt.
Vielen Dank für die Antwort. Ich habe durch statische Variablen, die ihren Wert ändern, wenn die Strategie Position offen ist (auf Schließung und Stop-Loss auch Werte ändern). Im Allgemeinen funktioniert dies gut, aber ich verstehe, dass nach dem Neustart des EA es seine Aufträge verlieren wird.
Warum tickt das Geld nicht?
Danke, Kumpel ... ich werde daran denken.
Ich habe Computer im Keller, ...., Bergbau in den Töpfen... lasst uns etwas tun.
Ich verstehe nicht, warum die Funktion 0 zurückgibt:
Zum Beispiel mit einem Anruf wie diesem:
n schreibt korrekt, gibt aber 0 zurück.Ich verstehe nicht, warum die Funktion 0 zurückgibt:
Zum Beispiel mit einem Anruf wie diesem:
n schreibt korrekt, gibt aber 0 zurück.