Eigene Funktion für Orderaufgabe
Hallo mal wieder :)
ich versuche mich immer weiter an neuen codes, bzw. schreibe die alten Codes um. Ich habe versucht, meinen ersten Code mal etwas anders zu fassen und ihn so schneller zu machen. Dazu wollte ich eigentlich die verschiedenen Orderaufgaben in eigene Funktionen schreiben. Leider gibt der EA aktuell gar keine Order aus, geschweige denn kommuniziert irgendwie mit dem MT....Könnt ihr mir vielleicht meinen Fehler zeigen? Code:
//+------------------------------------------------------------------+ trololotromberino |
Nur mal grob überflogen.
Die Variablen: double st1_long = iCustom(NULL,0,"SuperTrend1",st1,st2,0,1); double st1_short = iCustom(NULL,0,"SuperTrend1",st1,st2,0,1); double st2_long = iCustom(NULL,0,"SuperTrend1",st1,st2,0,2); double st2_short = iCustom(NULL,0,"SuperTrend1",st1,st2,0,2); double BBUP = iBands(NULL,0,iboll,2,2,PRICE_CLOSE,MODE_UPPER,0); double BBDN = iBands(NULL,0,iboll,2,2,PRICE_CLOSE,MODE_LOWER,0); double rsi1 = iRSI(NULL,0,irsi,PRICE_CLOSE,1); double rsi0 = iRSI(NULL,0,irsi,PRICE_CLOSE,0); // hier möglicherweise die zahl zu 2 tauschen kommen alle unter if(Oldbar != Bars) { if(OrderType() == OP_BUY) autosl = st1_long - abst; if(OrderType() == OP_SELL) autosl = st1_short + abst; Dazu muß vorher eine offene Order selektiert sein! void OpenLongOrderatBB(){ ordersend = OrderSend(NULL,OP_BUY,Lots,BBUP,slippage,stoploss,takeprofit,"Open void OpenShortOrderatBB(){ ordersend = OrderSend(NULL,OP_SELL,Lots,BBDN,slippage,stoploss,takeprofit,"Open Hier müssen natürlich auch die entsprechenden PendingOrders eingetragen werden! void OpenShortOrderMarket(){ ordersend = OrderSend(NULL,OP_BUY,Lots,Bid,slippage, Das soll doch eine SellOrder werden!! for(int i=0;i<=total-1;i++) { if(OrderSelect(i,SELECT_BY_POS)) { // Part soll dafür sorgen, dass nur 1 Position pro Signal eröffnet wird. if(OrderCommission()+OrderProfit()+OrderSwap()>0) { Print ("Order closing now, because of RSI-Signal!"); bool result = OrderClose(OrderSelect(OrderTicket(), SELECT_BY_POS) Das wäre falsch! ordersend = OrderSend(NULL,OP_BUY,Lots,BBUP,slippage,stoploss,takeprofit, Hier dürfen nicht die nackten Pipwerte der Marken genommen werden, sondern die tatsächlichen Preise! Wenn ich Dir einen guten Ratschlag geben darf: Beim Programmieren das jeweilige MQL-Wort markieren und F1 drücken und genau die Hilfe durchlesen. Das geht schneller als auf diesem Deinen Weg. Und v.a. sich an fertigen lauffähigen Programmen orientieren. traderdoc |
Was ich noch nicht ganz verstanden habe, ist, dass wenn ich die Variablen unter das Oldbars schreibe (also auch unter int start), er mir dann sagt, dass diese Variablen für die void Funktionen nicht zur Verfügung stehen (sie sind nicht definiert). Wenn ich aber die void Funktionen noch unter die Variablen schreibe, geht das nicht, weil void nicht in die start Funktion darf.
Kann man void irgendwie ersetzen? Weil ich kann die oldbar Funktion ja auch nicht aus der start Funktion raus nehmen..... |
Liste der Anhänge anzeigen (Anzahl: 1)
Das vorherige Problem konnte ich lösen, indem ich die Variablen vor der Start-Funktion nannte und in dieser dann definierte.
Allerdings bin ich jetzt auf ein neues großes Problem gestoßen: Ich kriege, egal was ich mache, immer einen Fehler Error 4107. F1 oder Google haben nicht geholfen. Ich habe versucht es durch *Point oder auch durch NormalizeDouble(stoploss,Digits()) probiert, aber ich kriege ihn immernoch. Der Code ist sehr umfangreich, ich werde ihn trotzdem mal anheften. Ansonsten sind hier die Dinge, die mit dem Stoploss zu tun haben: Code:
int start(){ LG |
Liste der Anhänge anzeigen (Anzahl: 2)
Vielleicht hilft dies:
(.zip diente nur zum Hochladen) |
Zitat:
Ich weiß, was der Fehlercode heißt, aber ich weiß nicht, was der Fehler an meinem Code ist. Nach Suche habe ich dann das Beschriebene mit *Point und NormalizeDouble gefunden, aber das hat nicht geholfen (zumindest so, wie ich es angewandt habe). LG |
Die Endung .odt ist von Open Office , ist Freeware !
Das andere müßte der direkte Brownser-Link sein. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:01 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