prosta siec neuronowa

Jeżeli masz pomysł lub używasz ciekawego systemu albo strategii gry, opisz ja tutaj.
STUDENT
Pasjonat
Pasjonat
Posty: 522
Rejestracja: 19 kwie 2017, 13:43

prosta siec neuronowa

Nieprzeczytany post autor: STUDENT »

strategia w pincode autor sirolf

//@version=2
strategy("ANN Strategy v2")

threshold = input(title="Threshold", type=float, defval=0.0000, step=0.0001)
timeframe = input(title="Timeframe", type=resolution, defval='1D' )

getDiff() =>
yesterday=security(tickerid, timeframe, ohlc4[1])
today=ohlc4
delta=today-yesterday
percentage=delta/yesterday

PineActivationFunctionLinear(v) => v
PineActivationFunctionTanh(v) => (exp(v) - exp(-v))/(exp(v) + exp(-v))


l0_0 = PineActivationFunctionLinear(getDiff())

l1_0 = PineActivationFunctionTanh(l0_0*0.8446488687)
l1_1 = PineActivationFunctionTanh(l0_0*-0.5674069006)
l1_2 = PineActivationFunctionTanh(l0_0*0.8676766445)
l1_3 = PineActivationFunctionTanh(l0_0*0.5200611473)
l1_4 = PineActivationFunctionTanh(l0_0*-0.2215499554)

l2_0 = PineActivationFunctionTanh(l1_0*0.3341657935 + l1_1*-2.0060003664 + l1_2*0.8606354375 + l1_3*0.9184846912 + l1_4*-0.8531172267)
l2_1 = PineActivationFunctionTanh(l1_0*-0.0394076437 + l1_1*-0.4720374911 + l1_2*0.2900968524 + l1_3*1.0653326022 + l1_4*0.3000188806)
l2_2 = PineActivationFunctionTanh(l1_0*-0.559307785 + l1_1*-0.9353655177 + l1_2*1.2133832962 + l1_3*0.1952686024 + l1_4*0.8552068166)
l2_3 = PineActivationFunctionTanh(l1_0*-0.4293220754 + l1_1*0.8484259409 + l1_2*-0.7154087313 + l1_3*0.1102971055 + l1_4*0.2279392724)
l2_4 = PineActivationFunctionTanh(l1_0*0.9111779155 + l1_1*0.2801691115 + l1_2*0.0039982713 + l1_3*-0.5648257117 + l1_4*0.3281705155)
l2_5 = PineActivationFunctionTanh(l1_0*-0.2963954503 + l1_1*0.4046532178 + l1_2*0.2460580977 + l1_3*0.6608675819 + l1_4*-0.8732022547)
l2_6 = PineActivationFunctionTanh(l1_0*0.8810811932 + l1_1*0.6903706878 + l1_2*-0.5953059103 + l1_3*-0.3084040686 + l1_4*-0.4038498853)
l2_7 = PineActivationFunctionTanh(l1_0*-0.5687101164 + l1_1*0.2736758588 + l1_2*-0.2217360382 + l1_3*0.8742950972 + l1_4*0.2997583987)
l2_8 = PineActivationFunctionTanh(l1_0*0.0708459913 + l1_1*0.8221730616 + l1_2*-0.7213265567 + l1_3*-0.3810462836 + l1_4*0.0503867753)
l2_9 = PineActivationFunctionTanh(l1_0*0.4880140595 + l1_1*0.9466627196 + l1_2*1.0163097961 + l1_3*-0.9500386514 + l1_4*-0.6341709382)
l2_10 = PineActivationFunctionTanh(l1_0*1.3402207103 + l1_1*0.0013395288 + l1_2*3.4813009133 + l1_3*-0.8636814677 + l1_4*41.3171047132)
l2_11 = PineActivationFunctionTanh(l1_0*1.2388217292 + l1_1*-0.6520886912 + l1_2*0.3508321737 + l1_3*0.6640560714 + l1_4*1.5936220597)
l2_12 = PineActivationFunctionTanh(l1_0*-0.1800525171 + l1_1*-0.2620989752 + l1_2*0.056675277 + l1_3*-0.5045395315 + l1_4*0.2732553554)
l2_13 = PineActivationFunctionTanh(l1_0*-0.7776331454 + l1_1*0.1895231137 + l1_2*0.5384918862 + l1_3*0.093711904 + l1_4*-0.3725627758)
l2_14 = PineActivationFunctionTanh(l1_0*-0.3181583022 + l1_1*0.2467979854 + l1_2*0.4341718676 + l1_3*-0.7277619935 + l1_4*0.1799381758)
l2_15 = PineActivationFunctionTanh(l1_0*-0.5558227731 + l1_1*0.3666152536 + l1_2*0.1538243225 + l1_3*-0.8915928174 + l1_4*-0.7659355684)
l2_16 = PineActivationFunctionTanh(l1_0*0.6111516061 + l1_1*-0.5459495224 + l1_2*-0.5724238425 + l1_3*-0.8553500765 + l1_4*-0.8696190472)
l2_17 = PineActivationFunctionTanh(l1_0*0.6843667454 + l1_1*0.408652181 + l1_2*-0.8830470112 + l1_3*-0.8602324935 + l1_4*0.1135462621)
l2_18 = PineActivationFunctionTanh(l1_0*-0.1569048216 + l1_1*-1.4643247888 + l1_2*0.5557152813 + l1_3*1.0482791924 + l1_4*1.4523116833)
l2_19 = PineActivationFunctionTanh(l1_0*0.5207514017 + l1_1*-0.2734444192 + l1_2*-0.3328660936 + l1_3*-0.7941515963 + l1_4*-0.3536051491)
l2_20 = PineActivationFunctionTanh(l1_0*-0.4097807954 + l1_1*0.3198619826 + l1_2*0.461681627 + l1_3*-0.1135575498 + l1_4*0.7103339851)
l2_21 = PineActivationFunctionTanh(l1_0*-0.8725014237 + l1_1*-1.0312091401 + l1_2*0.2267643037 + l1_3*-0.6814258121 + l1_4*0.7524828703)
l2_22 = PineActivationFunctionTanh(l1_0*-0.3986855003 + l1_1*0.4962556631 + l1_2*-0.7330224516 + l1_3*0.7355772164 + l1_4*0.3180141739)
l2_23 = PineActivationFunctionTanh(l1_0*-1.083080442 + l1_1*1.8752543187 + l1_2*0.3623326265 + l1_3*-0.348145191 + l1_4*0.1977935038)
l2_24 = PineActivationFunctionTanh(l1_0*-0.0291290625 + l1_1*0.0612906199 + l1_2*0.1219696687 + l1_3*-1.0273685429 + l1_4*0.0872219768)
l2_25 = PineActivationFunctionTanh(l1_0*0.931791094 + l1_1*-0.313753684 + l1_2*-0.3028724837 + l1_3*0.7387076712 + l1_4*0.3806140391)
l2_26 = PineActivationFunctionTanh(l1_0*0.2630619402 + l1_1*-1.9827996702 + l1_2*-0.7741413496 + l1_3*0.1262957444 + l1_4*0.2248777886)
l2_27 = PineActivationFunctionTanh(l1_0*-0.2666322362 + l1_1*-1.124654664 + l1_2*0.7288282621 + l1_3*-0.1384289204 + l1_4*0.2395966188)
l2_28 = PineActivationFunctionTanh(l1_0*0.6611845175 + l1_1*0.0466048937 + l1_2*-0.1980999993 + l1_3*0.8152350927 + l1_4*0.0032723211)
l2_29 = PineActivationFunctionTanh(l1_0*-0.3150344751 + l1_1*0.1391754608 + l1_2*0.5462816249 + l1_3*-0.7952302364 + l1_4*-0.7520712378)
l2_30 = PineActivationFunctionTanh(l1_0*-0.0576916066 + l1_1*0.3678415302 + l1_2*0.6802537378 + l1_3*1.1437036331 + l1_4*-0.8637405666)
l2_31 = PineActivationFunctionTanh(l1_0*0.7016273068 + l1_1*0.3978601709 + l1_2*0.3157049654 + l1_3*-0.2528455662 + l1_4*-0.8614146703)
l2_32 = PineActivationFunctionTanh(l1_0*1.1741126834 + l1_1*-1.4046408959 + l1_2*1.2914477803 + l1_3*0.9904052964 + l1_4*-0.6980155826)

l3_0 = PineActivationFunctionTanh(l2_0*-0.1366382003 + l2_1*0.8161960822 + l2_2*-0.9458773183 + l2_3*0.4692969576 + l2_4*0.0126710629 + l2_5*-0.0403001012 + l2_6*-0.0116244898 + l2_7*-0.4874816289 + l2_8*-0.6392241448 + l2_9*-0.410338398 + l2_10*-0.1181027081 + l2_11*0.1075562037 + l2_12*-0.5948728252 + l2_13*0.5593677345 + l2_14*-0.3642935247 + l2_15*-0.2867603217 + l2_16*0.142250271 + l2_17*-0.0535698019 + l2_18*-0.034007685 + l2_19*-0.3594532426 + l2_20*0.2551095195 + l2_21*0.4214344983 + l2_22*0.8941621336 + l2_23*0.6283377368 + l2_24*-0.7138020667 + l2_25*-0.1426738249 + l2_26*0.172671223 + l2_27*0.0714824385 + l2_28*-0.3268182144 + l2_29*-0.0078989755 + l2_30*-0.2032828145 + l2_31*-0.0260631534 + l2_32*0.4918037012)

buying = l3_0 > 0 ? true : l3_0 < -0 ? false : buying[1]

hline(0, title="base line")
//bgcolor(l3_0 > 0.0014 ? green : l3_0 < -0.0014 ? red : gray, transp=20)
bgcolor(buying ? green : red, transp=20)
plot(l3_0, color=silver, style=area, transp=75)
plot(l3_0, color=aqua, title="prediction")

longCondition = buying
if (longCondition)
strategy.entry("Long", strategy.long)

shortCondition = buying != true
if (shortCondition)
strategy.entry("Short", strategy.short)

STUDENT
Pasjonat
Pasjonat
Posty: 522
Rejestracja: 19 kwie 2017, 13:43

Re: prosta siec neuronowa

Nieprzeczytany post autor: STUDENT »

dodam tylko ze w przypadku robotow wykorzystujacych

- algorytmy genetyczne /GA/
- sieci neuronowe /NN/

platforma z badanym instrumentem finanasowym MUSI BYC NON STOP WLACZONA przez czas zalezny od badanego TF
/im dluzej tym lepiej /
PLATFORMA NA KTOREJ SA STAWIANE ROBOTY DO ANALIZ / *GA*NN*GA-NN / MUSI BYC ABSOLUTNIE WYZEROWANA - ZADNEJ HISTORII
roboty musza miec czas zeby wybrac najlepszego zawodnika i/lub nauczyc sie optymalnych decyzji poprzez
- ANALIZE W CZASIE RZECZYWISTYM / ZADNYCH BACKTESTOW - TO MOZE POWODOWAC OGROMNE BLEDY/

dlatego w przypadku profesjonalnego podejscia najlpeiej wynajac VPS albo od razu VDS z przestrzeniami z gotowa
/ WYZEROWANA /platforma
sposobem domowego majsterkowicza mozna tez zostawic non stop podlaczonego jakiegos przykladowo mininetbooka
z platforma z badanym instrumentem / trzeba uwazac na przerwy w dostawie sieci ** moga spieprzyc cale badanie ** albo podlaczyc go przez dwudostawcosieciowy terminal/

i jak wczesniej pisalem bardzo wazny jest dostawca sygnalu - najlepiej Datacenter ECN :wink:

-rookie-
Maniak
Maniak
Posty: 2307
Rejestracja: 13 kwie 2015, 19:00

Re: prosta siec neuronowa

Nieprzeczytany post autor: -rookie- »

Ale to jest niepełna strategia, gdzie jest np funkcja PineActivationFunctionTanh, tutaj jest tylko pokazane wywołanie i podane argumenty dla funkcji ale nie ma kodu tej funkcji. Możesz podać źródło / link do tej strategii?

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Re: prosta siec neuronowa

Nieprzeczytany post autor: LowcaG »

hm..czy ja dobrze widzę?

Przekształcenie, jednego wejścia(procentowa zmiana ceny), na nieliniowe wyjście, ma dać jakieś sensowne rezultaty?

Otóż dużo prościej jest, zrobić analizę historyczną tego procentowego "wskaźnika", sprawdzić jak się rozkładał long/short (tu nie ma SL/TP?) narysować, z aproksymować i mamy ten sam wynik, bez sieci neuronowej.

Dodać okienko czasowe analizy, i już mamy dynamicznie uczący się system ;)
Tylko wcześniej spojrzymy czy to w ogóle ma sens, bo wobec takiego wskaźnika mało nasuwa się logicznych wykresów.

Co do tematu, "że musi w czasie rzeczywistym" itd. to też trochę naciągane. To zależy od strategii douczania i nauczania.

STUDENT
Pasjonat
Pasjonat
Posty: 522
Rejestracja: 19 kwie 2017, 13:43

Re: prosta siec neuronowa

Nieprzeczytany post autor: STUDENT »

acha moje uwagi nie dotyczyly tego konkretnie robota ale ogolnych zasad uczenia sie robotow opartych na NN i GA
tu jest forum ekonomiczne a nie wolontariat :wink:

tak , wiele zalezy od optymalizacji :d
Ostatnio zmieniony 24 kwie 2018, 10:13 przez STUDENT, łącznie zmieniany 1 raz.

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Re: prosta siec neuronowa

Nieprzeczytany post autor: LowcaG »

STUDENT pisze:tak , wiele zalezy od optymalizacji :d
hm..nie bardzo rozumiem, co chciałeś przez to przekazać.

AG to ogólnie optymalizacja pewnych parametrów. SNN to zamiana N wymiarowej (tu N=1) przestrzeni wejść na pewną nieliniową funkcję.

Tzn. o optymalizacji czego piszesz?

[edit] o dopisałeś :)
STUDENT pisze:acha moje uwagi nie dotyczyly tego konkretnie robota ale ogolnych zasad uczenia sie robotow opartych na NN i GA
tu jest forum ekonomiczne a nie wolontariat :wink:
No ale to nie jest ogólna prawda ;)
Prawda jest taka, że dane muszą być oczywiście dobre i to na pewno.


[edit2]
O znów dopisałeś. Ale znów nie wiem co chciałęś przekazać. O co chodzi z tym wolontariatem?

STUDENT
Pasjonat
Pasjonat
Posty: 522
Rejestracja: 19 kwie 2017, 13:43

Re: prosta siec neuronowa

Nieprzeczytany post autor: STUDENT »

naczy sorry posiadam inna wiedze
acha , studiuje we francji / kraju specjalizujacym sie w dyplomatycznie rzecz ujmujac dyplomacji / i jestem analitykiem :D

a z wolontariatem to
ze za darmo to dzisiaj ci nawet nie wpierr...ola :wink:

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Re: prosta siec neuronowa

Nieprzeczytany post autor: LowcaG »

STUDENT pisze:naczy sorry posiadam inna wiedze
acha , studiuje we francji / kraju specjalizujacym sie w dyplomatycznie rzecz ujmujac dyplomacji / i jestem analitykiem :D
Ok, możesz posiadać inną wiedzę nikt Ci nie broni, nie musi być ona oczywiście dobra ;) ważne aby się nie zamykać w kokonie :)

Widzę, że nie podyskutujemy, merytorycznie. ok. Pozdrawiam :)

STUDENT
Pasjonat
Pasjonat
Posty: 522
Rejestracja: 19 kwie 2017, 13:43

Re: prosta siec neuronowa

Nieprzeczytany post autor: STUDENT »

nie no optymalizacja to calkiem osobny dzial - taka mam wiedze
a
GA to wybieranie najmocniejszego zawodnika z danej populacji
....
na przyklad kiedy mamy okreslony estymowany stastystycznie skuteczny przedzial < SL,0,TP>
Ostatnio zmieniony 24 kwie 2018, 10:25 przez STUDENT, łącznie zmieniany 1 raz.

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Re: prosta siec neuronowa

Nieprzeczytany post autor: LowcaG »

STUDENT pisze:GA to wybieranie najmocniejszego zawodnika z danej populacji
....
na przyklad kiedy mamy okreslony estymowany stastystycznie skuteczny przedzial < SL,0,TP>
ehh, teraz mam dylemat, bo to nie wolontariat i nie wiem czy ma sens abym tracił czas na tłumaczenie ;)

otóż to wybieranie najmocniejszego zawodnika, to właśnie optymalizacja ;)
wybranie najlepszego zestawu parametrów, zakodowanych w genach.

moc w tym jest taka, że przy mnogości parametrów, mamy problem ze znalezieniem deterministycznego algorytmu który w rozsądnym czasie znajdzie optimum i tu właśnie wchodzi GA. Nie dotyczy to jednego czy dwóch parametrów ;) to możemy brute and force policzyć.

ODPOWIEDZ