Wie programmiert man? - Seite 79

 

Cool, danke Jungs, beide Vorschläge sind wahrscheinlich besser als das, woran ich gearbeitet habe.

 

Kann mir bitte jemand helfen....

Hi...

Ich hoffe, dass mir jemand hier helfen kann, wie ich das programmieren kann.Dies ist martiangle EA und was ich tun möchte, ist:

1 . Wenn 2. Schicht Post offen, ich will Zielpunkt auf 1. Schicht bewegen, um Zielpunkt 2. layer.So, wenn Zielpunkt Hit auf 2. Schicht, dass 2 Post kann zur gleichen Zeit zu schließen.Wenn 3. Schicht offen ist, dass 1. und 2. Schicht Zielpunkt kann auf 3. bewegen Zielpunkt price.So können wir zur gleichen Zeit zu schließen.Same happend, wenn 4.

2.need pips lock.When 1st layer open, and got profit example 15 pip (TP 32), the ea make locking at sl price(example 5 pip)So when price reversel 10 pip that post can close automatically with profit 5 pips.Just for 1st layer post only.2nd layer do not need activated because this martiangle EA.

I m sehr leid für mein schlechtes english.Hope jemand kann mir helfen, mit einem Code auf dieser EA setzen. Dankeschön

martiangle_rsi_.mq4

Mit freundlichen Grüßen

Wirklich brauchen Hilfe Person

Dateien:
 

Hilfe bei Kommentaren

Ich versuche, einen Kommentar einzurichten, der auf dem Bildschirm angezeigt wird, aber ich habe nicht viel Glück

Ich habe es geschafft, die Pip-Anzahl für ein einzelnes Paar zu erhalten, aber ich kann nicht die Gesamtsumme für mehrere Paare anzeigen.

Jede Hilfe wäre großartig

Dies ist ein Beispiel für diesen Code

//========== FUNCTION getPipValue

double getPipValue(double ord,int dir)

{

double val;

RefreshRates();

if(dir == 1) val=(NormalizeDouble(ord,Digits) -

NormalizeDouble(Ask,Digits));

sonst val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits));

val = val/Punkt*co;

return(val);

}

//== Funktion beenden

int getSpread()

{

int spread=MarketInfo(Symbol(),MODE_SPREAD);

return(spread);

}

//========== FUNCTION getOpenOrders

void getOpenOrders()

{

int nsl, nsd;

string mngMagic, trailon;

int totalorders = OrdersTotal();

for(int j=0; j<totalorders;j++)

{

OrderSelect(j, SELECT_BY_POS, MODE_TRADES);

if((OrderType() == OP_BUY || OrderType() == OP_SELL) &&

OrderSymbol() == Symbol()&&(MagicNumber==0 || MagicNumber ==

OrderMagicNumber()))

{

double val=getPipValue(OrderOpenPrice(),OrderType());

//int val = OrderProfit()/(OrderLots()*10);

}

if(MagicNumber == 0)

mngMagic = "Alle "+Symbol()+" Trades.";

sonst

mngMagic = "Geschäfte mit MagicNumber = "+MagicNumber;

//RefreshRates();

Comment("Saldo: ",AccountBalance(),", AccountEquity: ",AccountEquity(),", AccountProfit: ",AccountProfit(), "Order Open: ",OrderOpenPrice(),

"\nPip Count: ", val,

"\nMy Account Cutoff Limit: ",Open_Loss_To_CloseTrades,

"\nManaging: ", mngMagic);

Prost

 

Der Pips-Wert einer aktuellen Order kann wie folgt ermittelt werden:

( OrderClosePrice() - OrderOpenPrice() ) / MarketInfo( OrderSymbol(), MODE_POINT )

Wenn Sie "bid" und "ask" verwenden möchten, müssen Sie auch die auf das Auftragssymbol bezogenen Werte verwenden, d.h. MarketInfo( OrderSymbol(), MODE_BID ) und MarketInfo( OrderSymbol(), MODE_ASK ).

 

ralph.ronnquist

Guten Tag

Danke für den Code, ich habe ihn verwendet, aber er zählt nur für das eine Paar und nicht für die Summe aller Paare.

Ich habe mit verschiedenen Szenarien experimentiert, aber immer noch nicht funktioniert

Ich habe eine Ea, die 3 Positionen öffnet, die ich auf 5 Paare laufen lasse. Ich kann die Pip-Anzahl für jedes Paar sehen, aber nicht das Kollektiv.

 
Beno:
ralph.ronnquist

Guten Tag

Danke für den Code, ich habe ihn verwendet, aber er zählt nur für das eine Paar und nicht für die Summe aller Paare.

Ich habe mit verschiedenen Szenarien experimentiert, aber immer noch nicht funktionieren

Ich habe ein Ea, das 3 Positionen öffnet, die ich auf 5 Paaren laufen lasse. Ich kann die Pip-Anzahl für jedes Paar sehen, aber nicht das Kollektiv.

Nun, wenn Sie mit globalen Variablen vertraut sind, können Sie sie verwenden, um die Pips-Informationen für jedes Paar zu speichern, das von jedem Symbol referenziert wird. Erstellen Sie eine weitere globale Variable, die den gesamten Pips-Wert referenziert und rufen Sie diese spezielle globale Variable auf, erhalten Sie sie aktualisiert, wenn die Pips steigen, speichern Sie sie. Globale Variablen können von jedem ea zugegriffen werden, da es im MT4-Speicher gespeichert ist.

Ich kann helfen, es für u Code, wenn Sie wollen.

 

Guten Tag ShahJB

Ich habe gesehen, globale Variablen in Code vor, aber haben Null Erfahrung mit ihnen so ja ich möchte Ihre Hilfe zu akzeptieren, um diese Code als seine treibende mich verrückt

 
Beno:
Gidday ShahJB Ich habe globale Variablen in Code gesehen, aber ich habe keine Erfahrung mit ihnen, also ja, ich würde gerne Ihre Hilfe annehmen, um dies zu codieren, da es mich verrückt macht

Ich habe gerade das folgende prompt codiert. Warum fügst du nicht zuerst diesen Code ein. Probieren Sie es aus und schreiben Sie mir, wenn es nicht klappt. Ich muss etwas Schlaf nachholen.

string val_old_string = "val_old" + Symbol();

int val_old = GlobalVariableGet(val_old_string);

if(val != val_old)

{

int pips_increment_decrement;

int current_total_pips;

string counter = "Pips-Zähler";

double pips_counter = GlobalVariableGet(counter);

if (val>val_old)

{

pips_increment_decrement = val - val_old;

current_total_pips = pips_increment_decrement + pips_counter;

GlobalVariableSet(Zähler, aktuelle_gesamte_Kurse);

GlobalVariableSet(val_old_string, val);

}

sonst

{

pips_increment_decrement = val_old - val;

current_total_pips = pips_counter - pips_increment_decrement;

GlobalVariableSet(Zähler, aktuelle_gesamte_Kurse);

GlobalVariableSet(val_old_string, val);

}

}

 

Warum funktioniert das nicht???

Hallo,

Ich bin ein kompletter Neuling in der Programmierung. Dank der Beiträge und Lernressourcen auf dieser Website habe ich den Mut aufgebracht, um zu versuchen, einige EAs zu erstellen, von denen einer Lguerre als einer der Trigger verwenden wird (ich habe diese Website verwendet, um mir zu helfen; Expert Advisor Builder für MetaTrader 4 ). Das Problem mit meinem EA ist, dass er keine Kaufaufträge öffnet, wenn die Auslöser getroffen werden. Ich habe ein paar EAs mit der oben genannten Website erstellt und sie führen Aufträge für Long- und Short-Positionen problemlos aus (die EAs verwendeten RSI). Bitte werfen Sie einen Blick auf die beigefügte EA, 3-28, und lassen Sie mich wissen, was ich falsch mache.... bin ich mit dem falschen Format für die Ebenen getroffen werden, bevor ein Handel ausgeführt wird? Braucht der Laguerre zusätzliche Parameter?

Ich habe eine peinliche Menge an Zeit damit verbracht und bin kurz davor, aufzugeben.... jede Hilfe wird GROSSARTIG geschätzt!!!!!

Ich scheine die Antwort gefunden zu haben... warum muss ich den Laguerre in meinem EA multiplizieren, obwohl?????

Dateien:
3-31.mq4  10 kb
 

Ich bin auf ein Problem beim Schließen von Positionen gestoßen. Bitte um Hilfe

Ich bin auf ein Problem gestoßen, von dem ich nicht weiß, wie ich es lösen kann. Mein Programm hat ein paar offene Aufträge und schließt sie alle zusammen, aber manchmal denke ich, dass einige der Aufträge nicht erfüllt sind, daher hält es zu warten, bis sie erfüllt sind und das blockiert mein Programm. Was ist Ihrer Meinung nach der beste Weg, um alle offenen Aufträge zu schließen? Vielen Dank für Ihre Hilfe.

Hier ist der Code:

int OrdersTotalLong()

{

int order_total = 0;

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

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES);

if (OrderType() == OP_BUY)

order_total++;

}

return(order_total);

}

int MaxLongOrder()

{

int Bestellung = 0;

double lotsbuyed = 0;

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

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES);

if ((OrderType() == OP_BUY) && (OrderLots() > lotsbuyed))

{

lotsbuyed = OrderLots();

Auftrag = i;

}

}

return(order);

}

int CloseLong()

{

while (OrdersTotalLong() > 0) //bis keine Orders mehr offen sind (alle schließen)

{

if (OrderSelect(MaxLongOrder(), SELECT_BY_POS, MODE_TRADES) == false) continue;

OrderClose(OrderTicket(),OrderLots(), Bid, 3, Green);

}

}

return(0);

}

Grund der Beschwerde: