Ein Berater, der den Kurs auf einem Fünf-Minuten-Chart mit Bedingungen nach dem Start verfolgen würde: - Seite 6
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Guten Tag.
Ich habe ein Skript, das den Verlauf sofort in die Datei schreibt, aber wenn die Datei geöffnet wird, geht der Datensatz nicht.... Das Skript, das Sie wahrscheinlich kennen oder gesehen haben, heißt currency_loader
// Laden von Verlaufsdaten aus M1
void LoadingM1(){//1
int MaxBars=MaxBarsInFile;
if(LoadM1 && iBars(Symbol(),PERIOD_M1)>BarsMin){ArrayCopyRates(ArrayM1,Symbol(),PERIOD_M1); ArrSizeM1=ArrayRange(ArrayM1,0);}
if(ArrSizeM1>1){//2
if(MaxBars>ArrSizeM1){MaxBars=ArrSizeM1;}
for(i2=1; i2<=Tryes; i2++){//3
h1 = FileWrite(DateinameM1,FILE_WRITE|FILE_CSV);
if(h1==-1){LastError=GetLastError();Info("1.2",1"," Beim Öffnen der Datei ist ein Fehler aufgetreten: "+DateinameM1+" bei "+i2+" Versuch "+FehlerBeschreibung(LetzterFehler));Pause=Pause+Pause; Sleep(Pause); continue; }else{Info("1.2",2", "Datei "+DateinameM1+" erfolgreich geöffnet ");}
FileWrite(h1,FirstLine);
for (i=MaxBars-1; i>=0; i-- ){//4
if(!USRegionSet){
CString=CString+TimeToStr(ArrayM1[i][0],TIME_DATE)+""; // Datum des Taktes
CString=CString+TimeToStr(ArrayM1[i][0],TIME_MINUTES)+","; // Uhrzeit des Taktes
}
sonst{
BarTime=ArrayM1[i][0];
CString=CString+GetUSFormatTime(BarTime)+" "; // Datum des Taktes
BarTime=0;
}
CString=CString+DoubleToStr(ArrayM1[i][1],iDigits)+","; // Eröffnungskurs
CString=CString+DoubleToStr(ArrayM1[i][3],iDigits)+","; // Höchstpreis
CString=CString+DoubleToStr(ArrayM1[i][2],iDigits)+","; // Niedriger Preis
CString=CString+DoubleToStr(ArrayM1[i][4],iDigits)+""; // Schlusskurs
FileWrite(h1,CString);
CString="";
}//4
FileClose(h1);
LCM1 = iTime(Symbol(),PERIOD_M1,0);
Rückkehr;
}//3
}//2
}//1
Soweit ich verstanden habe, gibt es ein Problem mit den Griffen, aber wo ist die Frage...
Funktioniert immer noch nicht!!!!
Helfen Sie mir zu verstehen, was der Grund dafür ist.
Wie haben Sie es getestet? Und wie soll es einen Gewinn abwerfen, wenn es nicht funktioniert? Und warum funktioniert es nicht? Was wird in der Zeitschrift gedruckt? Haben Sie es im Prüfgerät getestet? Oder online?
Schauen Sie sich auch die Funktion OrdersTotal an, wofür sie da ist und wie sie von.... eingefügt wird.
Zum Beispiel: int total=OrdersTotal(); if(total<1) {
{
//----
if (iOpen(NULL,5,0)-Bid>Delta*Point) //Der Kurs ist um mehr als Delta-Punkte gefallen
{
ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point, "Bought",MagicNumber,11111,Green);
}
if (iOpen(NULL,5,0)-Bid<Delta*Point) //Der Kurs ist um mehr als Delta-Punkte gestiegen
{
ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point, "Sold",MagicNumber,22222,Green);
}
//----
return(0);
}
//+------------------------------------------------------------------+
Und Sie sind ein aufdringlicher Typ, verstehen Sie? Kopieren Sie es in MetaEditor, sonst verwechseln Sie wieder das + mit dem -.
Soweit ich das verstehe, liegt das Problem irgendwo in den Griffen, aber wo ist die Frage...Hier ist ein Beispiel für den Erhalt von Handle
int hwnd1 = WindowHandle(Symbol(), Period());
Ich habe in Ihrem Code nichts Ähnliches bemerkt.
Wenn eine "csv"-Datei von Excel geöffnet wird, sie gesperrt ist und kein Schreibzugriff möglich ist, ist das ein Rätsel?
Wie haben Sie es getestet? Und wie soll es einen Gewinn abwerfen, wenn es nicht funktioniert? Und warum funktioniert es nicht? Was wird in der Zeitschrift gedruckt? Haben Sie es wo getestet, im Testgerät? Oder online?
Schauen Sie sich auch die Funktion OrdersTotal an, wofür sie gedacht ist und wie sie von.... eingefügt wird.
Zum Beispiel: int total=OrdersTotal(); if(total<1) {
Zeigt Gewinn 504, Anzahl der Trades 432, Drawdown $788, 7.31%. In den Einstellungen habe ich m5 auf Pfund gesetzt, 17/03/08 - 19/03/08.
Und wenn ich es auf dem Chart laufen ließ, wurden meine Bedingungen für den Handel erfüllt, aber der Expert Advisor tat nichts.......
int start()
{
//----
if (iOpen(NULL,5,0)-Bid>Delta*Point) //Der Preis ist um mehr als Delta-Punkte gefallen
{
ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point, "Bought",MagicNumber,11111,Green)
}
if (iOpen(NULL,5,0)-Bid<Delta*Punkt) //Der Preis ist um mehr als Delta-Punkte gestiegen
{
ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point, "Sold",MagicNumber,22222,Green);
}
//----
zurück(0);
}
//+------------------------------------------------------------------+
Und Sie sind ein sturer Kerl, verstehen Sie das. Kopieren Sie es in MetaEditor, sonst verwechseln Sie wieder das + mit dem -.
Wie kann ich meinen Expert Advisor dazu bringen, nur einen Handel zu eröffnen und keine weiteren zu eröffnen, bis dieser beendet ist?
Es ist mir peinlich, das zu fragen :)))
Wie kann ich meinen Expert Advisor dazu bringen, nur einen Handel zu eröffnen, und bis dieser beendet ist, keine weiteren zu eröffnen?
Ordnen Sie in einer Schleife eine Suche nach allen offenen Positionen an und überprüfen Sie diese auf das aktuelle Symbol und die magische Zahl. Wenn keine gefunden werden, schalten wir das grüne Licht ein. Die kodobase ist voll von solchen Beispielen, in fast jedem EA.