Jag sparar målvärde i global cell och vill sen rita ut det i diagram som horisontellt streck. Går det att få linjen att börja där traden togs så att man lätt kan se var den triggades?
Allmänt meddelande
Collapse
No announcement yet.
Rita värde från global cell med start vid köp
Collapse
X
-
Värdet i cellen är ingen dataserie så den visar inte var traden togs, men - det går att villkora ritningen med tex en test av LastTrade(b,d) som returnerar tidpunkten för senaste köp:
ritvärde=getgvar(cell)
efter_köp=gt(d,lasttrade(b,d))
draw(if(efter_köp,ritvärde,0),2,dgqb)
ritar värdet i cellen om D är senare än senaste köp, annars ritas värde noll.
-
Problemet är att jag har ett gridliknande system som har många positioner och jag vill kunna rita ut alla dessa målnivåer samtidigt. Det är många köp- och säljtillfällen om vartannat som kan komma i vilken ordning som helst. När en position säljs så nollas cellen. Finns det fortfarande en möjlighet att få linjen att starta vid tidpunkten för sitt köp?
Comment
-
Tanken är att köra på flera instrument och har därför satt startcell i Indata Script och räknar därifrån ut i vilka celler som värden ska sparas. På det sättet kan jag enkelt använda samma script till flera olika papper och behöver bara sätta den unika startcellen för varje instrument i Indata Script. I dagsläget har scriptet plats för 20 positioner så det blir en del celler som det ska sparas värden i. 20 celler sparar jag målkursen i, 20 celler sparar antal, plus ett par celler till med temporär och annan data. Nästan 50 celler per instrument hittills alltså. Kan man spara tiden för respektive tagen position så är det kanske görbart, men jag är på gränsen att slå i taket med antalet anrop redan så det stupar tyvärr där...
Hur sparar jag tidsstämpeln för ett köp och hur ska koden se ut för att sen läsa tidsstämpeln och villkora ritningen så att den horisontella målkurslinjen börjar vid tiden för köpet? Kan ett fristående script i t.ex. ordermodellen spara tidpunkten för köpet?
Hmmm… ett script kanske kan läsa de redan befintliga målkurscellerna och när det sker ett skifte från 0 till ett annat värde i cellen så sätts tidsstämpeln i sin unika cell framräknad baserad på Indata Script-startcellen?? Vet inte hur den koden skulle se ut för att funka men nån kanske har tips på en lösning?
Alla förslag är välkomna!
Comment
-
Hej Swedtraders!
Alla handlar vi ju på olika sätt. Jag kör ca 200 ordermodeller och runt +500 globala celler mot ett enda instrument (OMXS30 terminen).
Det är alltså inga problem att använda många ordermodeller samtidigt.
Om du vill så kan du ha 4 ordermodeller per instrument och ha 40 instrument. Inga problem.
Om en ordermodell skall gå mot 40 instrument så måste man ju testa på CRCID på alla 40 instrument i varje typ av ordermodell
OmVolvo=EQV(CRCID(),xxxx)
OmAlfa=EQV(CRCID(),yyyy)
osv
...
SetGVarIf(X,1001,And(köpsignal,OmVolvo),T)
SetGVarIf(Y,1002,And(köpsignal,OmAlfa),T)
osv
Eller om du vill ha datum är en alternativ metod
SetGVarIf(D,1001,And(köpsignal,OmVolvo),T)
SetGVarIf(D,1002,And(köpsignal,OmAlfa),T)
Mult(köpsignal,25)
Var det svar på frågan?
mvh
Bertil
Comment
-
Om jag förstår Rikard rätt så finns det redan en tidsstämpel sparad i de globala celler jag använder, och jag kan då bara hämta denna för koll mot den draw-funktion som ska rita ut linjen. Om jag då hämtar värdet med i detta fall
GetGVar(201,D)
Hur ska ritningsvillkoret se ut för att linjen ska starta vid tiden för köpet och sen växa framåt i tiden så länge just det innehavet finns? Det kan finnas många köp i samma instrument och jag håller reda på dessa mha cellerna. När en andel av innehavet säljs så nollas cellerna för just det innehavet. En delposition kan alltså gå i mål och säljas medans flera andra ligger kvar och väntar på sin respektive målkurs innan de säljs.
Cell 201-220 innehåller målkurs.
Cell 221-240 innehåller antal som ska köpas/säljas.
Dessa uppdateras samtidigt och då ska jag alltså bara kunna läsa tidsstämpeln och rita ut linjen för målkurs om tiden är senare än tidsstämpeln i cellen!?
Funkar detta?
målkurs=GetGVar(201)
Tidsstämpel=GetGVar(201,D)
rita=If(gt(målkurs,0),1,0)
tid_nu_är_senare_än_köptillfälle=gt(date(),Tidsstämpel)
If(and(rita,tid_nu_är_senare_än_köptillfälle),draw(målkurs,0,gqbw2),0)Last edited by swedtraders; 2020-01-20, 22:53.
Comment
-
Som tidigare konstaterats i tråden så kan man endast rita en kurva där en global cell ingår i beräkningen i realtid. Så fort man ändrar skalan pajjar man kurvan och den kan inte återskapas. Man kan inte heller göra beräkningar på kurvan eftersom den inte är en dataserie.
Varför vill du nödvändigtvis rita kurvan? Litar du inte på beräkningarna eller använder du grafiska funktioner för att trigga?
Undrar
Bertil
Comment
-
Njae, inget skrivs till cellerna bara för att scriptet ritar i diagrammet, förutom om man använder varianten SetGVarIFGui() som är speciellt designad just för det.
PS. Kod för att villkora ritning:
draw(mult(gt(d,getgvar(cell,d)),getgvar(cell)),2,dgqb)
som testar om D är senare än tidpunkten då cellen skrevs, i så fall ritas värdet i cellen, annars noll.
Last edited by Rikard Autostock; 2020-01-20, 00:18.
Comment
-
-Rikard, tack, jag ska testa lite och se om jag får det att lira!
-Bertil, kurva är för mycket sagt, det är bara en horisontell linje som visar var respektive position har sin målkursnivå. Börjar linjen där traden togs så blir det både lätt att se var respektive trade har triggats och var de kan gå i mål.
Comment
-
Ursprungligen postat av swedtraders Visa inlägg-...
-Bertil, kurva är för mycket sagt, det är bara en horisontell linje som visar var respektive position har sin målkursnivå. Börjar linjen där traden togs så blir det både lätt att se var respektive trade har triggats och var de kan gå i mål.
Är målkursen statisk dvs redan bestämd då traden triggas eller är målkursen dynamisk dvs beror på den upplupna tiden sedan traden togs plus andra faktorer?
Har du testat denna typ av script?
i1(
målkurs01=mult(LastTrade(b,p),1.01)
linje01=if(Gt(LastTrade(b,d),LastTrade(s,d)),målkurs01,c)
draw(linje01,1,rqb0)
mult(0,0)
)
mvh
Bertil
Comment
-
Både köp och sälj sker med automatiken så det är bara för överblickens skull (underlättar iofs. felsökning vid behov också). Jag har upp till 20 inköp i instrumentet att hålla reda på så lasttrade räcker tyvärr inte på långa vägar. Rikards lösning var den princip jag var inne på så jag testar den. Köp/säljscripten är ju redan lite komplicerade så det bör inte vara några problem att få den sista ritningen att funka också. Det får bli ett par fristående rent grafiska script så slipper jag krångla med triggerscripten.
En sista fundering bara... När man använder datumstämpeln, ritar scriptet då även när börsen är stängd??
Comment
Comment