Grundlegende Fragen ... - Seite 2

 

Ich werde versuchen, mich zu erklären:

Angenommen, ich habe 3 verschiedene Systeme:

System 1 funktioniert am besten auf dem EUR/USD 1M-Chart.

System 2 funktioniert am besten auf dem EUR/USD 5M-Chart.

System 3 funktioniert am besten auf dem EUR/USD 1H-Chart.

Nun möchte ich, dass mein Expert Advisor 1 Position pro Chart eröffnet und nicht mehr. Mit anderen Worten, ich möchte nur 1 Position für System 1, 1 Position für System 2 und 1 für System 3 öffnen.

Die vorherige Lösung, die Sie geschrieben haben, begrenzt 1 Position pro Symbol, und jetzt möchte ich 1 Position pro Charttyp begrenzen...

 

. Mit anderen Worten, ich möchte nur 1 Position für System 1, 1 Position für System 2 und 1 für System 3 öffnen.

OK

dann arbeiten Sie mit MAGIC Number pro System

#property copyright "system 1"

#property link ""

#define MAGIC 01901

.

.

.

if ( ExistPosition() == False) {

OrderSend(Symbol(),op,Lots,pp,SLIPPAGE,ldStop,ldTake,lsComm,MAGIC,0,clOpen); // MAGIC = system 1

}

// if open 1 position only for system 1 MAGIC ?

bool ExistPosition() {

bool Exist=False;

for (int i=0; i<OrdersTotal(); i++) {

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC) Exist=True;

}

}

return(Exist);

}

können Sie Ihre Systeme buchen?

 

10x!

Ich habe kein spezielles System. Es war nur ein Beispiel.

Ich bin neu in metaTrader und das war einige grundlegende Frage, die ich hatte ...

Sobald ich etwas Gutes schreibe, werde ich es hier für Kommentare hochladen...

 

Wie kann man einen EA dazu bringen, nur einmal pro Kerze zu handeln?

Ich habe mich gefragt, ob es ein Stück Code gibt, das ich einem EA hinzufügen kann, damit er nur einmal pro Kerze handelt.

Vielen Dank im Voraus

 
basza:
Ich frage mich, ob es ein Stück Code gibt, das ich einem EA hinzufügen kann, damit er nur einmal pro Kerze handelt.

statisch datetime timeprev;

if(timeprev==Time[0]) {

return(0); //nur bei neuem Takt ausführen

} else if (timeprev==0) {

timeprev=Time[0]; // nichts tun, wenn frisch zum Chart hinzugefügt

return(0);

} else {

timeprev=Time[0];

// Balkenverarbeitung hier

}

 
ra300z:
static datetime timeprev;

if(timeprev==Time[0]) {

return(0); //nur bei neuem Takt ausführen

} else if (timeprev==0) {

timeprev=Time[0]; // nichts tun, wenn frisch zum Chart hinzugefügt

return(0);

} else {

timeprev=Time[0];

// Balkenverarbeitung hier

}

Vielen Dank an ra300z

 

Prozentziel anzeigen ?

Hallo

Ich versuche, ein prozentuales Ziel in Form eines Kommentars innerhalb einer ea anzuzeigen.

Ich habe dieses Stück Code, das den aktuellen Kontostand als Kommentar anzeigt:

"Percentage Target : " + AccountBalance()"\n"

Am Anfang des ea habe ich das folgende:

extern int ProfitPercentage=25;

Nun möchte ich folgendes tun: AccountBalance * ProfitPercentage und die Ergebnisse anzeigen. z.B. $5675.69 * 25% = $1418.92 und nur $1418.69 anzeigen.

Vielen Dank im Voraus

 

hallo guyss....

1: Wie kann man den EA so einstellen, dass er nur ein einziges Mal mit einem Signal handelt (was ich meine, ist der Code)?

zum Beispiel ma Kreuz EA... wenn die ma Kreuz nach oben und mit Ziel 20 pip wird es geschlossen, aber wenn der Trend weiterhin wird es versuchen, einen anderen Handel zu öffnen, da die schnelle ma noch über langsame ma.it nur einen anderen Handel zu öffnen, wenn die ma Kreuz nach unten.

schnelle ma > langsame ma = brauchen nur einen Handel persignal

fast ma < slow ma = auch nur ein Handelspersignal erforderlich

2: Gibt es eine Möglichkeit, eine Zeitverzögerung für die Überkreuzung zu setzen? Ich weiß nur, Pip Trennung (was auch immer sie es nennen) bedeuten, dass es vielleicht 10-15 Pip nach der Überquerung der nur einen Handel öffnen warten wird.

nur ein Neuling versuchen zu lernen, mq4 Sprache:)

 

Eine Möglichkeit wäre, dass der EA nicht die aktuellen, sondern die historischen MA-Werte berücksichtigt. Im Prinzip wäre das so:

// Recognise past crossing (up or down)

if ( fast( past+1 ) slow( past ) )

then cmd = OP_BUY;

else if ( fast( past+1 ) >= slow( past+1 ) && fast( past ) < slow( past ) )

then cmd = OP_SELL;

else return;

// If processing reaches this point, then a trade decision of either OP_BUY

// or OP_SELL has been made, due to recognising a supporting MA crossing

// at "past" number of bars in history.

// Limit to only one trade in a direction

static int last_trade = -1;

if ( last_trade == cmd ) return;

last_trade = cmd;

// If processing reaches this point, then this processing is the first time

// that the supporting MA crossing is recognised.

Das würde eine Entscheidung an der "vergangenen" Anzahl von Balken nach dem Balken, in dem die Kreuzung auftritt, treffen und nur einen Handel zulassen, wenn die Kreuzung zum ersten Mal erkannt wird.

 

danke Bruder für den Code...

Grund der Beschwerde: