[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 497
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
Sagen Sie mir, wie man einen EA für diese Bedingung schreibt:
Es gibt drei Währungspaare, auf denen der EA Geschäfte eröffnen wird, und der EA ist nur mit einem Chart verbunden, während er auf den anderen beiden selbständig arbeitet, im Allgemeinen in mehreren Währungen.
Die zweite Bedingung ist, dass ein Geschäft eröffnet wird, wenn der Preis für eines der Währungspaare ein bestimmtes Niveau erreicht. Es kann jeweils nur ein Geschäft geöffnet werden.
Sobald das Geschäft geschlossen ist, kann der Expert Advisor das Geschäft bei jedem beliebigen Paar wieder öffnen, wenn sich der Preis nähert.
Ich habe eine statische Variable so eingestellt, dass die Geschäfte eröffnet werden können, solange der Wert der Variable false ist, und sobald der Auftrag für eines der Paare eröffnet wird, nimmt die Variable den Wert true an. Sobald der Auftrag geschlossen ist und die for-Schleife keinen Handel findet, nimmt die Variable wieder den Wert false an.
Und wenn zum Beispiel für jedes Paar nur ein Handel eröffnet werden soll, bedeutet das, dass jedes Paar seine eigene Variable hat.
Gibt es eine rationalere Lösung für dieses Problem?
Es gibt einen Parameter wie "Magik" in der Bestellung - zählen Sie einfach Bestellungen mit einer bestimmten Magik und erlauben oder verbieten Sie den Handel.
Wie schließe ich Aufträge korrekt ab und wie sammle ich Informationen über sie?
Ich habe folgenden Algorithmus geschrieben: Ich möchte eine Kaufposition eröffnen, wenn der Eröffnungskurs unter dem Fraktal nach oben und der Schlusskurs über dem Fraktal nach oben liegt, und eine Verkaufsposition, wenn der Eröffnungskurs über dem Fraktal nach unten und der Schlusskurs darunter liegt; außerdem möchte ich alle Positionen schließen, wenn sie um 85 Punkte unterschritten werden oder wenn der Auftrag innerhalb von 38 Kerzen (const. S) eröffnet wird.)Ich habe das Gefühl, dass überhaupt nichts geschlossen wird, nur geschlossene Aufträge, und im Allgemeinen habe ich das Gefühl, dass ich mit Aufträgen auf die falsche Weise umgehe, ich arbeite falsch und schließe sie dann auf die falsche Weise)) Bitte sagen Sie mir, wie ich sie richtig schließe, damit sie nicht durchrutschen und wo es Fehler in diesem Code gibt. Oder kann ein Beispiel dafür sein, wie nyu gehen, in denen alle diese Operationen angemessen durchgeführt werden. Vielen Dank im Voraus für Ihre Hilfe).
extern int S=38; //Anzahl der Candlesticks, nach denen die Position geschlossen wird
extern int SL=85; //der Stop, bei dem die Positionen auf jeden Fall geschlossen werden
extern int HIGH=0; //auf welchem Zeitrahmen nach Extremen gesucht wird (5 oder 1 oder 0(D1))
extern int l=1; //Anzahl der zu handelnden Lots
int massorder[30][30]; //es gibt Daten zu OPEN Lots
int numb=1; //die Anzahl der el-ta im Array, die oot ist. Los eröffnen
int i=0;
int ticket=0;
int x=0;
double down,up=0;
double highH1,lowH1=0;
int start()
{if(Hour()>x)
{
searchH1();
up=highH1;
down=lowH1;
i++;
}
//----
if(Open[1]<up && Close[1]>up)//wenn die Kerze bei der Eröffnung niedriger und bei der Schließung niedriger ist als das fraktale Niveau oben, dann
{
ticket=OrderSend(Symbol(),OP_BUY,l,Bid,5,Bid-SL*Point,NULL);
i=0;
savedata();
}
if(Open[1]>down && Close[1]<down)//wenn die Kerze am Open höher und am Close niedriger ist als das Down-Fraktal-Level, dann
{
ticket=OrderSend(Symbol(),OP_SELL,l,Ask,5,Ask+SL*Point,NULL);
i=0;
savedata();
}
if(i==S)
{
closeAllticket();
closeAllPos();
}
i++;
//----
x=Hour();
if(Hour()==23)
x=-1;
return(0);
}
//+------------------------------------------------------------------+
void closeAllticket()
{
for(int j=0;j<=numb;j++)
{
OrderClose(massorder[j][0],l,Ask,5);
OrderClose(massorder[j][0],l,Bid,5);
}
numb=0;
}
void closeAllPos()
{
for(int j=0;j<=OrdersTotal();j++)
{
OrderSelect(j,SELECT_BY_POS);
OrderClose(OrderTicket(),l,Ask,5);
OrderClose(OrderTicket(),l,Bid,5);
}
}
void searchH1()//Funktion zum Finden des Fraktals
{
if(iHigh(Symbol(),PERIOD_H1,3)>iHigh(Symbol(),PERIOD_H1,2) && iHigh(Symbol(),PERIOD_H1,3)>iHigh(Symbol(),PERIOD_H1,1) &&& iHigh(Symbol(),PERIOD_H1,3)>iHigh(Symbol(),PERIOD_H1,4) && iHigh(Symbol(),PERIOD_H1,3)>iHigh(Symbol(),PERIOD_H1,5))
highH1=iHigh(Symbol(),PERIOD_H1,3)
if(iHigh(Symbol(),PERIOD_H1,3)<iHigh(Symbol(),PERIOD_H1,2) && iHigh(Symbol(),PERIOD_H1,3)<iHigh(Symbol(),PERIOD_H1,1) && iHigh(Symbol(),PERIOD_H1,3)<iHigh(Symbol(),PERIOD_H1,4) && iHigh(Symbol(),PERIOD_H1,3)<iHigh(Symbol(),PERIOD_H1,5))
lowH1=iHigh(Symbol(),PERIOD_H1,3);
return (0);
}
void savedata() //Programm zum Speichern von Daten im Array{
OrderSelect(ticket,SELECT_BY_TICKET);
massorder[numb][0]=OrderTicket();
massorder[numb][1]=OrderOpenPrice();
massorder[numb][2]=OrderStopLoss();
massorder[numb][3]=OrderTakeProfit();
if(OrderType()==OP_BUY)
massorder[numb][4]=0;
if(OrderType()==OP_SELL)
massorder[numb][4]=1;
numb++;
}
Wie schließe ich Aufträge korrekt ab und wie sammle ich Informationen über sie?
Ich habe folgenden Algorithmus geschrieben: Ich möchte eine Kaufposition eröffnen, wenn der Eröffnungskurs unter dem Fraktal nach oben und der Schlusskurs über dem Fraktal nach oben liegt, und eine Verkaufsposition, wenn der Eröffnungskurs über dem Fraktal nach unten und der Schlusskurs darunter liegt; außerdem möchte ich alle Positionen schließen, wenn sie um 85 Punkte unterschritten werden oder wenn der Auftrag innerhalb von 38 Kerzen (const. S) eröffnet wird.)Ich habe das Gefühl, dass überhaupt nichts geschlossen wird, nur geschlossene Aufträge, und im Allgemeinen habe ich das Gefühl, dass ich mit Aufträgen auf die falsche Weise umgehe, ich arbeite falsch und schließe sie dann auf die falsche Weise)) Bitte sagen Sie mir, wie ich sie richtig schließe, damit sie nicht durchrutschen und wo es Fehler in diesem Code gibt. Oder kann ein Beispiel dafür sein, wie nyu gehen, in denen alle diese Operationen angemessen durchgeführt werden. Vielen Dank im Voraus für Ihre Hilfe).
In globalen Variablen, bei denen Sie am Anfang Stopps angegeben haben
bevor Sie Aufträge eröffnen:
im Signal zum Öffnen
am Ende des EA
Ich schätze, ich habe nichts vergessen.
in den globalen Variablen, wo Sie die Haltestellen am Anfang angegeben haben
bevor die Bestellungen eröffnet wurden:
im Signal zum Öffnen
am Ende des EA
als ob nichts vergessen worden wäre
Ich habe alles, was Sie schrieb, aber immer noch nichts hat sich aus irgendeinem Grund geändert. das Ergebnis ist das gleiche wie es war und immer noch bleibt, Aufträge bleiben offen für eine große Menge an Zeit, und ich brauche sie nach S Bars zu schließen, was ist das Problem ?????????????????
Ich habe alles, was Sie schrieb, aber immer noch nichts geändert hat. das Ergebnis ist, wie es war und wie es jetzt ist, Aufträge sind immer noch offen eine Menge Zeit und ich brauche sie nach S Bars zu schließen, was ist der Deal?????????????????
Der Aufruf zur Schließung von Aufträgen sollte vor der Eröffnung von Aufträgen erfolgen. Ich habe diese auf Schließung:
vor der weltweit größten
#include <stdlib.mqh>
Ich habe es vor der Eröffnung von Aufträgen so formuliert:
und dies ganz am Ende des EA
Frage an die Experten, gibt es irgendwelche Kriterien für EAs, wie z.B. die Mindestanzahl von Lots für einen bestimmten Zeitraum des Tests? Prozentsatz des Verlustes, usw.?
Ich habe nur 2 EAs, und sie machen 100 Trades pro Jahr, und ein anderer macht insgesamt 30 Trades... (Zeitrahmen 15 bzw. 30). Die Rentabilität ist gut, die erste ist in einer Demo auf echte Angebote, es ist jetzt getestet ... Aber kann mir jemand sagen, wenn es eine bessere ... Aber vielleicht kann mir jemand sagen, ob es bessere Tests als in MT4 gibt?
Hallo an alle Genießer))))
Es gibt einen Indikator, der eine Trendlinie auf den letzten beiden Fraktalen zeichnet, aber er zeichnet sie nach einem "unbestätigten Fraktal", d.h. der zweite Balken hat sich noch nicht nach dem Fraktal gebildet, aber die Linie wurde bereits gezeichnet. Wie kann man erreichen, dass nach dem zweiten Takt gezeichnet wird, aber nicht nach dem ersten? Der Indikator befindet sich auf der Registerkarte.
Hallo an alle Genießer))))
Es gibt einen Indikator, der eine Trendlinie auf den letzten beiden Fraktalen zeichnet, aber er zeichnet sie nach einem "unbestätigten Fraktal", d.h. der zweite Balken hat sich noch nicht nach dem Fraktal gebildet, aber die Linie wurde bereits gezeichnet. Wie kann man erreichen, dass es nach dem zweiten Takt gezeichnet wird, aber nicht nach dem ersten? Der Indikator befindet sich auf der Registerkarte.
Versuchen Sie
Versuchen Sie