Ich habe auch meinen Fehler gefunden. Der Punkt ist, dass die "Buy_close"-Bedingung dem Programm eine Aufgabe gibt, um das Geschäft auszuführen, und die Prüfung für die Position ist "Buy_opened".
Das Geschäft ist abgeschlossen und die "Buy_close"-Bedingung stimmt überein, daher wird ein Fehler erzeugt.
Ich kann keine MA-Linien mit einem Offset von -+0,30% erhalten.
Es istkein Problem, den gleitenden Durchschnitt aufzurufen, von dem aus die Verschiebung erfolgen soll, aber es gibt keine Möglichkeit, Verschiebungslinien zu erhalten.
Grundlegender Code:
#property indicator_chart_window#property indicator_buffers2#property indicator_plots2#property indicator_type1 DRAW_LINE#property indicator_color1 clrMediumVioletRed#property indicator_style1 STYLE_SOLID#property indicator_label1 ""#property indicator_type2 DRAW_LINE#property indicator_color2 clrRed#property indicator_style2 STYLE_SOLID#property indicator_label2 "Sell TP
inputint Period_ = 34; //Периодint ma1Handle;
double ma1Val[];
double ExtMapBuffer1[];
double ExtMapBuffer2[]
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
SetIndexBuffer(0,ExtMapBuffer1,INDICATOR_DATA);
SetIndexBuffer(1,ExtMapBuffer2,INDICATOR_DATA)
ma1Handle=iMA(_Symbol,_Period,Period_,0,MODE_EMA,PRICE_CLOSE);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator iteration 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[])
{
CopyBuffer(ma1Handle,0,0,2,ma1Val);
ArraySetAsSeries(ma1Val,true);
int bars=Bars(_Symbol,_Period);
for(int i=0;i<bars;i++)
{
ExtMapBuffer2[i]=ma1Val[0] - ((ma1Val[0]/100)*0.3);//ЗДЕСЬ НЕ ПОЛУЧАЕТСЯ ПОЛУЧИТЬ ЛИНИЮ
}
//--- //--- return value of prev_calculated for next callreturn(rates_total);
}
sandex: Diese Zeichenfolge sollte in einer Schleife stehen und indiziert sein.
Wie indiziere ich eine Zeichenkette? Wenn ich das versuche, kommt die Fehlermeldung
ArraySetAsSeries(ma1Val,true);
int bars=Bars(_Symbol,_Period);
for(int i=0;i<bars;i++)
{
CopyBuffer(ma1Handle,0,0,2,ma1Val[i]);
ExtMapBuffer2[i]=ma1Val[i] - ((ma1Val[i]/100)*0.3);//ЗДЕСЬ НЕ ПОЛУЧАЕТСЯ ПОЛУЧИТЬ ЛИНИЮ
}
Im Terminal gibt es kein Ereignis "close order". Sie sollten ein Skript oder einen Expert Advisor verwenden. Wie oben dargestellt.
Wie heißt das Ereignis, wenn Sie das Kreuz drücken, um einen offenen Auftrag zu schließen?
Das ist es, was Sie brauchen, um einen Ton "zuzuordnen
Herzlichen Dank!
Ich habe auch meinen Fehler gefunden. Der Punkt ist, dass die "Buy_close"-Bedingung dem Programm eine Aufgabe gibt, um das Geschäft auszuführen, und die Prüfung für die Position ist "Buy_opened".
Das Geschäft ist abgeschlossen und die "Buy_close"-Bedingung stimmt überein, daher wird ein Fehler erzeugt.
Die Bedingung wurde wie folgt festgelegt:
Dies ist die Aktion, mit der der Ton "zugewiesen" wird
Ich kann keine MA-Linien mit einem Offset von -+0,30% erhalten.
Es istkein Problem, den gleitenden Durchschnitt aufzurufen, von dem aus die Verschiebung erfolgen soll, aber es gibt keine Möglichkeit, Verschiebungslinien zu erhalten.
Grundlegender Code:
Diese Zeichenfolge sollte in einer Schleife stehen und indiziert sein.
Wie indiziere ich eine Zeichenkette? Wenn ich das versuche, kommt die Fehlermeldung
Die Indizierung sollte folgendermaßen durchgeführt werden:
Diese Zeile sollte wie folgt aussehen:
Deklarieren Sie das Array als statisch, mit der Größe 1: