Jag tänkte koppla mitt trigger-script till flera aktier samtidigt, och för att skicka signaler mellan köpscript och säljscript kan man då använda globala minnesceller. Dock stöter man på problemet att flera papper kanske får signal samtidigt och försöker skriva viktiga saker till samma minnesceller.
Jag tänkte mig då att man skulle kunna använda Indata Script och sätta vilka minnesceller som det pappret får använda sig av. Detta funkar fint och jag kan göra tex:
{Skriva variabler}
*************************
//Räknar ut vilka index denna aktien får ha. Har satt att varje aktie kan ha 10 parametrar, och får börja skriva från plats 200 och uppåt. Vilken siffra som aktien får använda bestäms av ScrPar(21), där jag skriver in 0,1,2,3 osv för de aktier jag har anslutna
numberOfVariables:=10
indexBase:=200
stockIndexMultiplier:=ScrPar(21)
startIndex:=ADD(indexBase,MULT(numberOfVariables,stockIndexMultiplier))
indexIsLong:=ADD(startIndex,0)
indexStopLoss:=ADD(startIndex,1)
indexBuyTime:=ADD(startIndex,2)
indexNumberOfStocks:=ADD(startIndex,3)
//Kod till beräkning
{Write to global variables}
SetGVarIf(1,indexIsLong,1) {Long is +1, short is -1}
SetGVarIf(mStopLossLevel,indexStopLoss,1)
SetGVarIf(Date(),indexBuyTime,1) {Now()}
SetGVarIf(mAntalToBuy,indexNumberOfStocks,1)
*************************
{Läsa variabler}
{NumberOfStocks}
numberOfVariables:=10
indexBase:=200
stockIndexMultiplier:=ScrPar(21)
startIndex:=ADD(indexBase,MULT(numberOfVariables,stockIndexMultiplier))
indexIsLong:=ADD(startIndex,0)
indexStopLoss:=ADD(startIndex,1)
indexBuyTime:=ADD(startIndex,2)
indexNumberOfStocks:=ADD(startIndex,3)
GetGVar(indexNumberOfStocks)
******************************
För att ha en överblick av vilka värden som olika aktier har, så har jag kommit på att Kalkylutforskaren är bra. Där radar jag upp en kolumn för varje variabel jag vill läsa av.
Problemet är dock att ScrPar(21) inte verkar läsas in i Kalkylutforskaren mer än för första kolumnen!?
Så om jag har skrivit data till platserna [210,211,212,213]
så får första kolumnen i kalkylutforskren mycket riktigt fram [210], men sedan blir det [201,202,203] om jag kör följande kod på fyra olika kolumner:
numberOfVariables:=10
indexBase:=200
stockIndexMultiplier=ScrPar(21)
startIndex=ADD(indexBase,MULT(numberOfVariables,stockIndexMultiplier))
indexToUse=ADD(startIndex,0)
MULT(indexToUse,1)
Jag antar att jag förvirrat bort er för länge sedan, men frågan är alltså om där är en bugg i mitt script eller i NAT, som gör att ScrPar() inte funkar så bra i Kalkylutforskaren
Jag tänkte mig då att man skulle kunna använda Indata Script och sätta vilka minnesceller som det pappret får använda sig av. Detta funkar fint och jag kan göra tex:
{Skriva variabler}
*************************
//Räknar ut vilka index denna aktien får ha. Har satt att varje aktie kan ha 10 parametrar, och får börja skriva från plats 200 och uppåt. Vilken siffra som aktien får använda bestäms av ScrPar(21), där jag skriver in 0,1,2,3 osv för de aktier jag har anslutna
numberOfVariables:=10
indexBase:=200
stockIndexMultiplier:=ScrPar(21)
startIndex:=ADD(indexBase,MULT(numberOfVariables,stockIndexMultiplier))
indexIsLong:=ADD(startIndex,0)
indexStopLoss:=ADD(startIndex,1)
indexBuyTime:=ADD(startIndex,2)
indexNumberOfStocks:=ADD(startIndex,3)
//Kod till beräkning
{Write to global variables}
SetGVarIf(1,indexIsLong,1) {Long is +1, short is -1}
SetGVarIf(mStopLossLevel,indexStopLoss,1)
SetGVarIf(Date(),indexBuyTime,1) {Now()}
SetGVarIf(mAntalToBuy,indexNumberOfStocks,1)
*************************
{Läsa variabler}
{NumberOfStocks}
numberOfVariables:=10
indexBase:=200
stockIndexMultiplier:=ScrPar(21)
startIndex:=ADD(indexBase,MULT(numberOfVariables,stockIndexMultiplier))
indexIsLong:=ADD(startIndex,0)
indexStopLoss:=ADD(startIndex,1)
indexBuyTime:=ADD(startIndex,2)
indexNumberOfStocks:=ADD(startIndex,3)
GetGVar(indexNumberOfStocks)
******************************
För att ha en överblick av vilka värden som olika aktier har, så har jag kommit på att Kalkylutforskaren är bra. Där radar jag upp en kolumn för varje variabel jag vill läsa av.
Problemet är dock att ScrPar(21) inte verkar läsas in i Kalkylutforskaren mer än för första kolumnen!?
Så om jag har skrivit data till platserna [210,211,212,213]
så får första kolumnen i kalkylutforskren mycket riktigt fram [210], men sedan blir det [201,202,203] om jag kör följande kod på fyra olika kolumner:
numberOfVariables:=10
indexBase:=200
stockIndexMultiplier=ScrPar(21)
startIndex=ADD(indexBase,MULT(numberOfVariables,stockIndexMultiplier))
indexToUse=ADD(startIndex,0)
MULT(indexToUse,1)
Jag antar att jag förvirrat bort er för länge sedan, men frågan är alltså om där är en bugg i mitt script eller i NAT, som gör att ScrPar() inte funkar så bra i Kalkylutforskaren
Comment