Alma Background
Forums › ProRealTime Deutsch forum › ProBuilder Support › Alma Background
- This topic has 5 replies, 2 voices, and was last updated 6 years ago by Nicolas.
Tagged: ALMA, backgroundcolor
-
-
12/08/2018 at 7:27 AM #86545
Hallo, ich versuche den Filter und StepAlma zusammenzufügen um die Latenz zu verringern. Wie man sehen kann sind die Ergebnisse nicht dieselben und ich weiß nicht warum.
Liegt es an
hh = CALL “PRC_ALMA VHF filter”[window, sigma, VHFp](high)
ll = CALL “PRC_ALMA VHF filter”[window, sigma, VHFp](low)?Würde mich sehr über Hilfe freuen!
12/10/2018 at 9:17 AM #8665012/10/2018 at 12:23 PM #86686Hallo,
Hier ist der Code, im Prinzip ist er nur zusammengefügt:
Alma Background123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settings// Window = 7// Sigma = 3// VHFp = 21// --- end of settingsPrice = customClose//VHFLength=VHFpCloseDiff = 0SumDiff = 0Serie = PriceFor Counter = 0 to Length - 1 doCloseDiff = Abs(serie[Counter] - serie[Counter + 1])SumDiff = SumDiff + CloseDiffnextIf SumDiff = 0 ThenSumDiff = 1endifVHF = (Highest[Length](serie) - Lowest[Length](serie)) / SumDiff//Offset = max(0.01,1- VHF)m = (Offset * (Window - 1))s = Window/SigmaWtdSum = 0CumWt = 0for k = 0 to Window - 1 doWtd = Exp(-((k-m)*(k-m))/(2*s*s))WtdSum = WtdSum + Wtd * Price[Window - 1 - k]CumWt = CumWt + WtdnextALAverage = WtdSum / CumWt//PRC_StepALMA-VHF Hi/Lo band | indicator//15.11.2018//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settings// Window = 7// Sigma = 3// VHFp = 21// Sensitivity = 2 // Sensivity Factor// StepSize = 14 // Step Size period// --- end of settingshh = ALAveragell = ALAverageif hh<hh[1] and low<ll thentrend=-1elsif ll>ll[1] and high>hh thentrend=1endifif trend=1 theniline=llelseiline=hhendif//step functionSensitivity = max(Sensitivity,1*pointsize)ATRStepSize=averagetruerange[StepSize]Step = max(ATRStepSize,1*pointsize)size = sensitivity*Stepphigh = highest[7](iline)plow = lowest[7](iline)stepMulti = 1.0workStepsmax = phigh+2.0*size*stepMultiworkStepsmin = plow-2.0*size*stepMultiworkSteptrend = workSteptrend[1]pprice = customcloseif (pprice>workStepsmax[1]) thenworkSteptrend = 1endifif (pprice<workStepsmin[1]) thenworkSteptrend = -1endifif (workSteptrend = 1) thenif (workStepsmin < workStepsmin[1]) thenworkStepsmin=workStepsmin[1]endifresult = workStepsmin+size*stepMultiralma=0galma=255balma=0BACKGROUNDCOLOR (ralma,galma,balma,70)endifif (workSteptrend = -1) thenif (workStepsmax > workStepsmax[1]) thenworkStepsmax=workStepsmax[1]endifresult = workStepsmax-size*stepMultiralma=255galma=0balma=0BACKGROUNDCOLOR (ralma,galma,balma,70)endifreturn result coloured(ralma,galma,balma) style(line,3) as "Step ALMA VHF Filter Hi/Lo band"12/10/2018 at 3:47 PM #86697Ich denke, dass Sie den Originalcode völlig durcheinander gebracht haben. Um das Hi / Lo-Band zu erstellen, benötigt der Indikator den ALMA-Durchschnitt, der einmal mit Highs und einmal mit Lows berechnet wurde. Deshalb rufe ich den Indikator zweimal im Bandcode auf.
Ich gehe also davon aus, dass Sie den Hintergrund abhängig von der Farbe des Hi / Lo-Bandes einfärben möchten. In diesem Fall sollte der genaue Code lauten:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071//PRC_StepALMA-VHF Hi/Lo band | indicator//15.11.2018//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settingsWindow = 7Sigma = 3VHFp = 21Sensitivity = 2 // Sensivity FactorStepSize = 14 // Step Size period// --- end of settingshh = CALL "PRC_ALMA VHF filter"[window, sigma, VHFp](high)ll = CALL "PRC_ALMA VHF filter"[window, sigma, VHFp](low)if hh<hh[1] and low<ll thentrend=-1elsif ll>ll[1] and high>hh thentrend=1endifif trend=1 theniline=llelseiline=hhendif//step functionSensitivity = max(Sensitivity,1*pointsize)ATRStepSize=averagetruerange[StepSize]Step = max(ATRStepSize,1*pointsize)size = sensitivity*Stepphigh = highest[7](iline)plow = lowest[7](iline)stepMulti = 1.0workStepsmax = phigh+2.0*size*stepMultiworkStepsmin = plow-2.0*size*stepMultiworkSteptrend = workSteptrend[1]pprice = customcloseif (pprice>workStepsmax[1]) thenworkSteptrend = 1endifif (pprice<workStepsmin[1]) thenworkSteptrend = -1endifif (workSteptrend = 1) thenif (workStepsmin < workStepsmin[1]) thenworkStepsmin=workStepsmin[1]endifresult = workStepsmin+size*stepMultir=0g=255b=0endifif (workSteptrend = -1) thenif (workStepsmax > workStepsmax[1]) thenworkStepsmax=workStepsmax[1]endifresult = workStepsmax-size*stepMultir=255g=0b=0endifbackgroundcolor(r,g,b,70)return result coloured(r,g,b) style(line,3) as "Step ALMA VHF Filter Hi/Lo band"1 user thanked author for this post.
12/14/2018 at 12:34 PM #87095Leider ist das nicht ganz das was mir vorschwebt. Ziel war eine visuelle Überprüfung für ein Handelssystem zu haben sowie evtl. für diskretionäres Trading.
2 Probleme treten nun auf, der Indikator hat noch höhere Latenzen und lädt ständig neu, das belastet den PC und man kann fast nicht mehr arbeiten.
Trotzdem Danke, vielleicht findet sich doch noch eine Möglichkeit auf die “Call” Anweisung zu verzichten.
12/17/2018 at 11:57 AM #87279Der beste Weg, die Berechnungszeit zu reduzieren, besteht immer noch darin, den CALL zu vermeiden und alle Codes in denselben Code zu implementieren. Sie können beispielsweise versuchen, die angezeigten Einheiten zu reduzieren oder am Anfang des Codes ein defparam calculateonlastbars=1000 hinzuzufügen (1000 ist ein Beispiel, das Sie reduzieren können).
-
AuthorPosts