Antal ägda instrument i portföljen, använder getgvar på 200, 201, 202, 203
i1(
ny_period=gt(d,getgvar(200,d))
setgvarif(crcid(),200,ny_period) {spara första ID som påträffas varje ny per }
setgvarif(0,201,ny_period) { nollställ räknare varje ny per }
setgvarif(1,202,ny_period) { räknare påslagen när värde 1 }
fortsätt=eqv(getgvar(202),1)
nytt_instrument=and(fortsätt,not(eqv(getgvar(200),crcid())))
räknare=getgvar(201)
innehav=gt(portfolio(v),0)
setgvarif(add(1,räknare),201,and(innehav,nytt_instrument))
stoppa=setgvarif(0,202,and(not(ny_period),not(nytt_instrument)))
setgvarif(räknare,203,and(not(ny_period),not(nytt_instrument)))
resultat=getgvar(203)
and(0,0)
)
Loop, sätter alla gvarif till 0…
start:=10
stopp:=899
retval(0,0)
counter=retval(add(1,getval(0)),0)
{ *** DETTA ÄR INUTI LOOPEN *** }
setgvarif(0,add(start,counter),1)
{ *** NU KOMMER LOOP SLUT *** }
loop(counter,65000,lt(counter,stopp),w)
Grupperade satser
while=if(gt(a,b),1,0)
{ *** Do stuff *** }
loop(while,1,if(gt(a,b),1,0),w)
Paus sedan senaste inköp i dagar
{ *** QUARANTINE ***}
quarantine_days=add(1,0)
buy_day=int(lasttrade(b,d))
today=int(date())
days_since_last=if(gt(lasttrade(b,p),0),sub(today,buy_day),99)
quarantine_released=ge(days_since_last,quarantine_days)
{ **** QUARANTINE ***}
{ *** RÄKNA ANTAL INSTRUMENT *** }
crcid_ptr:=65000
antal_instrument_ptr:=65001
timestamp_ptr:=65002
crid_cur=crcid()
crcid_val=getini(crcid_ptr)
num_inst=getini(antal_instrument_ptr)
tm=getini(timestamp_ptr)
ej_idag=gt(int(d),int(tm))
{ inte idag, lagra crcid }
setiniif(crcid(),crcid_ptr,ej_idag)
{ Börjar om, ifall inte idag }
setiniif(0,antal_instrument_ptr,ej_idag)
villkor=gt(portfolio(v),0)
ej_första_instrument=or(ej_idag,not(eqv(getini(crcid_ptr),crcid())))
räknare=getini(antal_instrument_ptr)
{ Om samma crcid hittas lagrad, då har den kört idag }
slut_för_idag=and(ej_idag,eqv(crcid(),getini(crcid_ptr)))
setiniif(int(d),timestamp_ptr,not(slut_för_idag))
setiniif(add(räknare,villkor),antal_instrument_ptr,not(slut_för_idag))
{ *** ANTAL INSTRUMENT *** }
crcid_ptr:=65000antal_instrument_ptr:=65001timestamp_ptr:=65002
antal_instrument=getini(antal_instrument_ptr)
{ *** SET CURRENT CLOSE AS STATIC *** }
close=add(c,0)
adress=scrpar(28)
is_adr_set=gt(adress,0)
stored=setgvarif(close,adress,is_adr_set)
testc=getgvar(adress)
{ *** DRAW CURRENT CLOSE AS LINE ***
adress=scrpar(28)
adr_is_set=gt(adress,0)
data=getgvar(adress)
stored_close=if(adr_is_set,getgvar(adress),0)
safe_sell=mult(stored_close,0.99)
draw(safe_sell,2,mqbw)
good_sell=mult(stored_close,0.975)
draw(good_sell,3,gqbw)
add(0,0)
xk)
{*** not first 5 minutes ***}
tittabakåt:=1
i5(
inpådagen1=eqv(int(ref(d,tittabakåt)),int(d))
inpådagen2=And(inpådagen1,Eqv(Int(d),Int(Date())))
mult(inpådagen2,30)
)
{*** not first 5 minutes ***}
{Detta skript beräknar antalet aktier som kan köpas baserat på
en fast avsatt poststorlek}
vl)
belopp:=4000
delar=div(belopp,c)
{ Här läggs ytterligare en aktie till, för att nå minst önskat belopp}
add(1,int(delar))
sl)
{ Syftet är att dels kontrollera att säljpriset är tillräckligt högt Dels kontrollera om det är lönt att lägga ordern pga antalet.
}
{ SETUP }
profit:=1.025
köpkurs=add(0,b)
{ SCRIPT }
inköpspris=portfolio(p)
innehav=portfolio(v)
{ pga ej realtid i utvecklingen kan man inte simulera orderboken }
orderbok=Odepth(b,v,0)
antal_ok=gt(orderbok,innehav)
{ antal_ok=and(1,1) }
säljpris=mult(inköpspris,profit)
{marknadsinfo }
öppnar=market(O)
öppet=gt(frac(date()),öppnar)
stänger=market(C)
inte_stängt=lt(frac(date()),stänger)
marknaden_öppen=and(öppet,inte_stängt)
handelplats=market()
{ SLUTLOGIK }
pris_ok=gt(köpkurs,säljpris)
pretest=and(marknaden_öppen,pris_ok)
resultat=and(pris_ok,and(gt(innehav,0),antal_ok))
minimum_fritt:=5000
{ OMSÄTTNING I VOLYM }
volym_dagar=add(20,0)
volym_tradesize=add(400,0)
volym_medel=MOV(V,volym_dagar,S)
volym_värde=mult(volym_medel,c)
volym_säker=gt(volym_värde,mult(minimum_fritt,1000))
{ marknadsinfo }
öppnar=market(O)
öppet=gt(frac(date()),öppnar)
stänger=market(C)
inte_stängt=lt(frac(date()),stänger)
marknaden_öppen=and(öppet,inte_stängt)
{ RSI }
rsi_värde=Rsiws(14)
rsi_stiger=Gt(rsi_värde,Aref(rsi_värde,1))
rsi_stigande=and(rsi_stiger,1)
rsi_worth_trading=lt(rsi_värde,rsi_max)
rsi_resultat=and(rsi_stigande,rsi_worth_trading)
{ RSI for three days }
rsi_a0=LT(aref(rsiws(14),1),40)
rsi_b0=LT(aref(rsiws(14),2),40)
rsi_c0=LT(aref(rsiws(14),3),40)
mult(mult(rsi_a0,rsi_b0),rsi_c0)
sl) AH Sell min3%rsi60
har_innehav=gt(portfolio(v),0)
rsi60=gt(rsiw(14),60)
and(har_innehav,and(gt(c,mult(portfolio(p),1.025)),rsi60))
sl) AH_level_buy_01
startstorage:=6000
object_num_fields:=2
testaccount:=1
steps_pct:=0.05
minmoney:=500
rsi_max:=35
pclinkid:=28
prevstorage=add(startstorage,mult(sub(testaccount,1),500))
nextstorage=add(startstorage,mult(sub(testaccount,0),500))
rsi_test=sub(rsi_max,mult(2,testaccount))
quarantine_days=add(1,0)
relative_pct=sub(1,mult(steps_pct,testaccount))
nextdatecell=scrpar(pclinkid)
storagenextcell=add(mult(nextdatecell,object_num_fields),prevstorage)
cell_date=add(storagenextcell,1)
cell_kurs=add(storagenextcell,0)
lastpay=lasttrade(b,p)
lastdate=lasttrade(b,d)
pengar=gt(cash(t),minmoney)
har_ej_innehav=eqv(portfolio(v),0)
har_innehav=gt(portfolio(v),0)
prevdate=scrpar(pclinkid)
storageprev=add(mult(prevdate,object_num_fields),prevstorage)
now=date()
today=int(now)
buy_day=int(getgvar(cell_date))
days_since_last=sub(today,buy_day)
quarantine_released=ge(days_since_last,quarantine_days)
rsi_current=rsiws(14)
rsi_a0=LT(aref(rsiws(14),1),rsi_max)
rsi_b0=LT(aref(rsiws(14),2),rsi_max)
rsi_c0=LT(aref(rsiws(14),3),rsi_max)
rsi_threedays=mult(mult(rsi_a0,rsi_b0),rsi_c0)
rsi_ok=and(rsi_threedays,lt(rsi_current,rsi_max))
cell_start_kurs=add(add(mult(nextdatecell,object_num_fields),startstorage),0)
value_start_buy=getgvar(cell_start_kurs)
value_pct=mult(value_start_buy,relative_pct)
lower_index=lt(c,cmpref(c,1,a))
{ signal=and(lower_index,and(quarantine_released,and(pengar,and(har_ej_innehav,lt(c,value_pct))))) }
signal=and(and(lower_index,and(quarantine_released,and(pengar,har_ej_innehav))),rsi_ok)
actual=add(c,0)
setgvarif(lastpay,cell_kurs,har_innehav)
setgvarif(actual,cell_kurs,signal)
setgvarif(lastdate,cell_date,har_innehav)
setgvarif(now,cell_date,signal)
value_kurs=getgvar(cell_kurs)
tidpunkt=getgvar(cell_date)
and(signal,1)
{@A(0,SX All-Sha)}
Sell Min 3%RSI60
har_innehav=gt(portfolio(v),0)
rsi60=gt(rsiw(14),60)
and(har_innehav,and(gt(c,mult(portfolio(p),1.025)),rsi60))
AH Buy 400
i5(
add(Int(div(400,s)),1)
)
AH Sell 400
i5(
innehav=portfolio(v)
antal=add(Int(div(400,s)),1)
if(gt(antal,innehav),innehav,antal)
)
sl) Köpsignal
minimum_fritt:=500
rsi_3d:=50
rsi_max:=37
rsi_min:=30
poststorlek:=400
maxrisk:=6
starttime=div(75,1440)
now=frac(date())
open=market(o)
clockok=gt(sub(now,add(starttime,open)),0)
fritt_kapital=add(minimum_fritt,poststorlek)
pengar=gt(cash(t),fritt_kapital)
har_ej_innehav=eqv(portfolio(v),0)
har_innehav=gt(portfolio(v),0)
today=int(date())
buy_day=int(lasttrade(b,d))
days_since_last=sub(today,buy_day)
quarantine_days=add(1,add(1,int(div(c,poststorlek))))
quarantine_released=and(gt(buy_day,0),ge(days_since_last,quarantine_days))
rsi_current=rsiws(14)
rsi_avg=mov(aref(rsi_current,1),3,S)
rsi_a0=LT(aref(rsiws(14),1),rsi_3d)
rsi_b0=LT(aref(rsiws(14),2),rsi_3d)
rsi_c0=LT(aref(rsiws(14),3),rsi_3d)
rsi_threedays=mult(mult(rsi_a0,rsi_b0),rsi_c0)
{ rsi_stiger=Gt(rsi_current,Aref(rsi_current,1)) }
rsi_stiger=Gt(rsi_current,rsi_avg)
rsi_ok=and(rsi_threedays,and(rsi_stiger,and(lt(rsi_current,rsi_max),gt(rsi_current,rsi_min))))
volym_dagar=add(20,0)
volym_tradesize=add(400,0)
volym_medel=MOV(V,volym_dagar,S)
volym_värde=mult(volym_medel,c)
volym_säker=gt(volym_värde,mult(poststorlek,1000))
idag=int(now)
lastdata=int(d)
uppdaterad=lt(sub(idag,lastdata),1)
{uppdaterad=add(1,0)}
casha=cash(a)
cashu=cash(u)
casht=cash(t)
cashn=cash(n)
cashc=cash(c)
belratio=div(casha,add(sub(casha,cashu),casht))
belgrad=lt(belratio,maxrisk)
signal=and(belgrad,and(clockok,and(uppdaterad,and(volym_säker,and(and(har_ej_innehav,pengar),rsi_ok)))))
{ ma5ma10dxdy}
har_ej_innehav=eqv(portfolio(v),0)
ma5=mov(c,5,s)
ma10=mov(c,10,s)
maok=gt(ma5,ma10)
days=add(1,Topbars(lt(mov(c,5,s),mov(c,10,s)),100,1))
close=add(c,0)
oldhvalue=AREF(h,days)
oldlvalue=AREF(l,days)
oldcvalue=AREF(c,days)
withinmargin=gt(mult(oldcvalue,1.03),close)
madt5=sub(ma5,mov(aref(c,1),5,s))
madt10=sub(ma10,mov(aref(c,1),10,s))
madtok=and(gt(madt5,0),gt(madt10,0))
result=and(har_ej_innehav,and(maok,and(withinmargin,madtok)))