"Fehler im Code"
Hallo..
.. ich bin ganz frisch hier und habe seid über 10 Jahren nix mehr programmiert. Nun habe ich ein Video in Youtube gefunden und ich wollte das Teil nachprogrammieren einige Fehler konnte ich selbstständig korrigieren jedoch bei einem abschnitt weiss ich nicht weiter. Die Fehlermeldung lautet: return value of 'OrderSelect' should be checked hier mein code: offeneOrders = 0; anzahlOrders = OrdersTotal(); for(zaehler=0; zaehler<anzahlOrders;zaehler++) {OrderSelect(zaehler,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()) {if(OrderMagicNumber()==Magicnummer){offeneOrders+ +;}} } kann mir jemand bitte sagen was ich da vergeigt habe, wäre ganz net |
offeneOrders = 0;
anzahlOrders = OrdersTotal(); for(zaehler=0; zaehler<anzahlOrders;zaehler++) {if(OrderSelect(zaehler,SELECT_BY_POS,MODE_TRADES) ) {if(OrderSymbol()==Symbol()) {if(OrderMagicNumber()==Magicnummer) offeneOrders++; } } } traderdoc |
Ich bin's wieder...
... jetzt habe ich ein neues Problem.
hier erstmal mein Code: //Order aufgeben if (ACCOUNT_PROFIT < -100){Lots=1;} if (ACCOUNT_PROFIT > 100){Lots=4;} if (Kauf>0 && offeneOrders == 0) {if (Signal == "LONG") {ticket=OrderSend(Symbol(),OP_BUY,Lots,Kauf,30,Sto pkurs,Kursziel,"MA Cross",Magicnummer,Green); if (ticket>0) {if (OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Profit: ",OrderProfit);} else Print("fehlerhaft Entry: ", GetLastError(), Kauf);}} return; {if (Signal == "SHORT") {ticket=OrderSend(Symbol(),OP_SELL,Lots,Kauf,30,St opkurs,Kursziel,"MA Cross",Magicnummer,Red); if (ticket<0) {if (OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Profit: ",OrderProfit);} else Print("fehlerhaft Entry: ", GetLastError(), Kauf);}} return; return; -------------- Problem Nummer 1: obwohl dieser EA im Backtest ein Positives Ergebniss generiert geht er nur Longs ein. Wo liegt mein Fehler? Problem Nummer 2: ich möchte gern das wenn der Verlust oder Gewinn eine bestimmte Menge erreicht hat soll die Positionsgröße geändert werden. Wie kann ich das am besten anstellen? Wäre toll wenn sich jemand meinen kleinen Problemchen annehmen könnte. |
Code:
ACCOUNT_PROFIT = 0; An Deinem hier vorliegenden Codesschipsel kann es nicht liegen, dass er nur Buy-Orders öffnet. Entweder daran: if (Signal == "SHORT"), oder an ungültigen Übergaben von Lots, StopKurs bzw. Kursziel. Und in Zukunft den Code immer über die oben stehende Auswahl: # eingeben. traderdoc |
Ich kann den Fehler einfach nicht finden, warum der EA keine Short's eingeht,
vielleicht kann mal ein anderer rüber schauen wo der Fehler ist. Code:
//+------------------------------------------------------------------+ |
Code:
if (Signal == "LONG") Richtig wäre: Code:
if (Signal == "LONG") |
Desweiteren sollten double-Ergebnisse v.a. nach Multiplikation bzw. Division mit NormalizeDouble(Wert, Digits) auf die Digits-Kommastelle normiert werden. Das ist v.a. für die OrderSend()-Funktion wichtig.
traderdoc |
Alle Zeitangaben in WEZ +2. Es ist jetzt 10:18 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum