Allmänt meddelande

Collapse
No announcement yet.

Att bygga 4 parallella ordermodeller

Collapse
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • #16
    Ah, några saker som orsakar fel:

    Du försöker köra i två upplösningar samtidigt, och använder dessutom minnesreferenser blandat med tilldelade namn vilket inte är tillåtet. Och slutligen tror jag du blandat ihop antalscript med triggerscript i slutet. Jag gissar att du vill att triggerscriptet bara ska köpa om innehavet är under målantal? I så fall bör det se ut så här:

    sl) breakout 10 Grön Köp takeprofit

    period1:=eqv(int(ref(d,1)),int(d))
    gräns:=And(hhv(Not(period1),2),period1)
    målantal:=GetGVar(20) {hämtar önskat målantal från cell 20 som programmerats av konfigscriptet sl) Raptor konfig }
    innehav:=Portfolio(v)
    i60(
    hi=Find(gräns,20,Aref(h,1),1)
    lo=Find(gräns,20,Aref(l,1),1)
    signal1=And(Le(Aref(c,1),hi),Gt(c,hi))
    signal2=And(signal1,period1)
    undermål=Lt(innehav,målantal)
    and(signal2,undermål)
    )

    Comment


    • #17
      Jag gör nog som den berömda Marjasin, klipper och klistrar. Skall bli intressant att se om resten fungerar som tänkt.

      Comment


      • #18
        Takeprofit försöker att lägga order men det finns inget innehav.

        tidspärr:=1
        lt1:=LastTrade(B,D)
        lt2:=LastTrade(S,D)
        minSedanKöp:=Mult(Sub(Date(),lt1),1440)
        minSedanSälj:=Mult(Sub(Date(),lt2),1440)
        delay_ok:=And(Gt(minSedanKöp,tidspärr),Gt(minSedanSälj,tidspärr))
        Mult(delay_ok,1)

        100716
        09:01 ORDER "sl) Breakout place takeprofitorder OMXS300H" kurs 1059.7500
        09:02 ORDER "sl) Breakout place takeprofitorder OMXS300H" kurs 1061.0000
        09:03 ORDER "sl) Breakout place takeprofitorder OMXS300H" kurs 1062.0000
        09:05 ORDER "sl) Breakout place takeprofitorder OMXS300H" kurs 1062.2500
        09:06 ORDER "sl) Breakout place takeprofitorder OMXS300H" kurs 1062.0000

        Comment


        • #19
          Fixat, hade den som en egen ordermodell, ligger nu som sec 2 i köp/sälj.

          Comment


          • #20
            Bra! Då agerar den bara när man nyss fått signal och innehav.

            Comment


            • #21
              Ursprungligen postat av Rikard Nilsson Visa inlägg
              Ah, några saker som orsakar fel:

              Du försöker köra i två upplösningar samtidigt, och använder dessutom minnesreferenser blandat med tilldelade namn vilket inte är tillåtet. Och slutligen tror jag du blandat ihop antalscript med triggerscript i slutet. Jag gissar att du vill att triggerscriptet bara ska köpa om innehavet är under målantal? I så fall bör det se ut så här:

              sl) breakout 10 Grön Köp takeprofit

              period1:=eqv(int(ref(d,1)),int(d))
              gräns:=And(hhv(Not(period1),2),period1)
              målantal:=GetGVar(20) {hämtar önskat målantal från cell 20 som programmerats av konfigscriptet sl) Raptor konfig }
              innehav:=Portfolio(v)
              i60(
              hi=Find(gräns,20,Aref(h,1),1)
              lo=Find(gräns,20,Aref(l,1),1)
              signal1=And(Le(Aref(c,1),hi),Gt(c,hi))
              signal2=And(signal1,period1)
              undermål=Lt(innehav,målantal)
              and(signal2,undermål)
              )

              Något fattas, det skickas bara nollorder.

              Comment


              • #22
                Om det skickas nollorder låter det som att det saknas antalscript?

                Comment


                • #23
                  Det är helt riktigt, jag trodde att konfigurations-skriptet fixade antalet. Jag använder detta va-skriptet, blir inte det lite av samma konf. då.

                  maxantal:=2
                  minantal:=2
                  {Om börsutvecklingen god(medel stigande) så handlar man med 'maxantal'
                  istället för 'minantal'}
                  MAnu:=mov(C,96,e)
                  MAdå:=mov(ref(C,4),96,e)
                  uppåt:=GT(MAnu,MAdå)
                  målantal:=IF(uppåt,maxantal,minantal)
                  innehav:=portfolio(v)
                  övermål:=GT(innehav,målantal)
                  antal:=if(övermål,0,SUB(målantal,innehav))
                  {--Om 25 minuter innan stängning handlar vi med antal kontrakt, annars 0 kontrakt--}
                  stängning1:=le(mult(1440,sub(market(c),frac(date()))),25)
                  slut_antal:=If(stängning1,0,antal)
                  i60(slut_antal)

                  Comment


                  • #24
                    Nja, antalscriptet som vi använder hämtar sitt "börvärde" från den cell som konfig-scriptet programmerar. Tanken med det är att alla script som behöver "veta" något om önskat antal osv hämtar sina värden från celler som styrs från konfig-scriptet. Då blir det bara ett enda script att hålla reda på när man vill ändra något.

                    Scriptet du använder ovan hämtar inget från globala celler utan jobbar helt ensamt, och det fungerar ju också bra. Det som kan få det att skicka nollorder är om du redan har ett innehav, eller om kl är efter 17:05 då raden "stängning1" blir sann och raden efter byter till noll i målantal.

                    Comment


                    • #25
                      Det var det som jag tyckte var så bra och trodde därför att va.skript inte behövdes, vad händer om jag har olika värden i konfigg och va, vem bestämmer ?

                      Varför skickas bara nollorder när takeprofit går in, priset är rätt.

                      takeprofitantal:=GetGVar(23)
                      innehav:=Abs(Portfolio(v))
                      i1(
                      orderantal=Mn(takeprofit,innehav)
                      orderantal)

                      100721
                      10:15 ORDER "sl) Breakout 10 Röd Sälj takeprofit OMXS300H" kurs 1035.7500
                      10:15:34 Order skickad!
                      10:16 ORDER "sl) Breakout place takeprofitorder OMXS300H" kurs 1034.2500
                      10:16:42 EJ SÄND NOLLORDER
                      11:07 ORDER "sl) Breakout 11 Turkos Köp takeprofit OMXS300H" kurs 1041.0000
                      11:07:58 Order skickad!
                      11:09 ORDER "sl) Breakout place takeprofitorder OMXS300H" kurs 1041.2500
                      11:09:06 EJ SÄND NOLLORDER

                      Comment


                      • #26
                        Om antalscriptet läser målantal från en global cell så blir det just det antalet och inget annat.

                        I takeprofit-sekvensen gäller samma sak, värdet som ska skickas hämtas från cell 23 som i sin tur programmeras av konfigscriptet, så det blir det antal som står inställt i konfigscriptet eller noll om inget innehav finns vid tillfället. Kolla i sekvens 2 (takeprofit) vilket antalscript som är anslutet. Kolla också så att konfig-scriptet verkligen är kopplat och rätt inställt.

                        Comment


                        • #27
                          köpantal:=2
                          blankantal:=-2
                          takeprofit:=5
                          antaltp:=2
                          i1(
                          SetGVarIf(köpantal,24,1)
                          SetGVarIf(blankantal,21,1)
                          SetGVarIf(takeprofit,22,1)
                          SetGVarIf(antaltp,23,1)
                          )

                          takeprofitantal:=GetGVar(23)
                          innehav:=Abs(Portfolio(v))
                          i1(
                          orderantal=Mn(takeprofit,innehav)
                          orderantal)
                          Attached Files

                          Comment


                          • #28
                            Ändrade köpantal till cell 24 då jag trodde cell 20 var inblandad i ett annat skript.

                            Comment


                            • #29
                              Det är kanske så att det står fel i raden " orderantal " som jag kopierade från första inlägget ?
                              Är det här rätt ?
                              takeprofitantal:=GetGVar(23)
                              innehav:=Abs(Portfolio(v))
                              i1(
                              orderantal=Mn(takeprofitantal,innehav)
                              orderantal)

                              Comment


                              • #30
                                Med den nya skrivningen fungerar det.

                                Comment

                                Working...
                                X