Einzelnen Beitrag anzeigen
  #4 (permalink)  
Alt 09.05.13
trader99 trader99 ist offline
Neues Mitglied
 
Registriert seit: May 2013
Beiträge: 5
trader99 befindet sich auf einem aufstrebenden Ast
Standard

Hi Traderdoc,

also erstmal vielen Dank, dass Du Dir die Mühe gemacht hast, Dich mit der Schleife auseinanderzusetzen.

Jetzt ist mir auch klar, warum er alles was nach dem ersten if kommt, nicht mehr beachtet, egal was ich da eingegeben habe. Klar, logisch, aber mit der Zeit kriegt man manchmal auch ein Brett vor dem Kopf, wenn man seit ner Woche an so ner Schleife sitzt. Außerdem hast Du mich dahingehend beruhigt, dass ich schon gedacht habe, ich grundlegend die while-Schleife total verkehrt gecodet, das scheint aber nicht der Fall zu sein, sonst hättest Du es sicher erwähnt.

Zu Deiner Frage: Es soll ein Long Signal gegeben sein, wenn der Wert <= -40 war und dann das erste Mal >0 wird. Danach soll kein Signal mehr sein, erst wieder, wenn der Wert erneut <= -40 war. Zu dem Zweck habe ich beim Einstieg noch die zusätzliche Bedingung: iCustom(NULL,0,”Indicator”,0,1) <=0 && iCustom(NULL,0,”Indicator”,0,0) > 0 in der späteren Entscheidungsschleife, ob ein Kauf stattfinden soll. Die habe ich hier allerdings zwecks der Übersichtlichkeit nicht mit reinkopiert, hätte ich vielleicht noch erwähnen sollen. Übrigens war noch ein Fehler im Code den ich hier reinkopiert hatte, ich hatte statt y und z jedesmal x gesetzt. Das war aber in meinem Editor auch nicht der Fehler.

Die Antwort auf Deine Frage ist also: Ja, es soll in dieser Schleife Long-Signal gegeben sein, jedesmal wenn der Wert <= -40 war. Da y seinen ersten Wert mit 1 hat, also die Vorperiode, müsste das doch eigentlich passen, denn wenn er in der laufenden Periode >0 wird, hat er sein einziges Einstiegssignal, wenn ich hier richtig gedacht habe.

Jetzt habe ich es mal so probiert:

Code:
bool Buycondition= false;
bool Sellcondition = false;
int x=1;
while(x>0) {
   
   if(iCustom(NULL,0,”Indicator”,0,x) <=-40) {
      for(int y=1; y<x; y++) {
         if(iCustom(NULL,0,”Indicator”,0,y) <=0) {
            Buycondition =true;
            break; 
         }
      }
   }

   
   if(iCustom(NULL,0,”Indicator”,0,x) >=40) {
      for(int z=1; z<x; z++) {
         if(iCustom(NULL,0,”Indicator”,0,z) >=0) {
            Sellcondition =true; 
            break; 
         }
      }
   }
   x++;
}
Jetzt macht er allerdings im Backtest gar nichts mehr, der grüne Balken fängt nicht mal mehr an zu laufen, scheinbar ist das nicht rechenbar, was ich hier eingebe. Wenn Du eine Idee hast, wie man die Schleife richtig programmiert, wäre ich Dir sehr dankbar, ich habe echt langsam keine Ahnung mehr. Vielen Dank für Deine Mühe.