Thursday, November 29, 2018

google tends 反指標可行性? FIX_DATA (二)

資料量可能會呈現全部趨向於100%的狀況


所以我打算先取得該年度區間所有的百分比再去*上每日百分比,這樣數據的呈現應該才是最準確的數字。
先取得2004至今的趨勢

程式碼


運行結果



資料量問題


一開始我還以為要對資料做正規化,思考一下應該不是這問題,這邊會面臨到一直要數據被伺服器阻擋的問題(我先備份了數據)

這是取得每月得數據

這是我們之前取得每日的數據

然後我們要對數據加工一下
這才是正確的等比例數據
來看一下程式碼

程式碼

下載我我是資料~data.csv


Sunday, November 18, 2018

風險分析與蒙特卡羅模擬股市路徑


又多了一項分析武器老早就想跑這張圖了,終於有空來跑一下那麼就開始。

蒙特卡羅方法


第一次人们开始研究蒙特卡罗方法是要评估π。

通过概率论,蒙特卡罗可以用作数值积分法。 例如,




其中p(x)是U(0;1)的概率密度函数。


实践中,蒙特卡罗广泛应用于统计力学,量子物理学,金融衍生产品定价和风险管理。


##一个MC示例:期权定价


蒙特卡洛通常用于评估期权价格。


我们不会涉及任何理论推论。 对于欧式看涨期权,其价格可以通过公式给出




其中S为当前基本股票价格,σ为股票波动率,r为利率,T为期权期权,K为行使价,Φ为标准正态随机变量。


股票布朗運動


布朗运动、伊藤引理、BS 公式

所以到底有沒有可能股市是基於布朗運動呢,上方網址點入,
那我假設是有一定規律性的


本周我們介紹股市波動最基本的特性: 對數常態分配(Log-normal Distribution)。有接觸過財務工程的投資朋友可能都聽過這個名詞,因為...

教科書說,股市的漲跌幅,呈現對數常態分配。

這個觀察是奧斯本(Matthew Maury Osborne,1916~2003)發現的。然而,這個現象並不那麼直觀! 我們介紹如下:

這邊也符合對數常態分配,在99%的信心水平下,統二的股票一年後的價格不會低於64塊ㄏㄏ,風險值有35%,掉那麼快也倒了,或許是我用錯了?參考那網站是好像是用正規常態,我是用對數或許有些關聯。
這是模擬五萬次蒙特卡羅(好像沒什麼意義xd。

程式碼



增加動畫


google tends 反指標可行性?(一)

反指標可行性?


如何用Google Trends找到「逃命訊號」?打一個關鍵字,就找出股價高點的方法 

從線圖可以看到,在Google上搜尋「股票」的人,在2007年3月開始異常增加,並在6月達到高峰,在此之後搜尋程度都一直相較過去維持在高檔,股市則於2007年10月後開始下跌。

「你覺得,什麼人會在Google上搜尋『股票』這種無關緊要的關鍵字?」我問,
「只有剛入門的散戶有可能吧...」他已經懂了,並用詭譎的笑容看著這張圖。

那如何取得資料到python?


pytrends 裝好後,我們切換到程式碼面,我們要一次爬一年,我遇到了一個問題怎麼爬著爬著到2014年資料都是空的,
奇怪有資料阿,切去看程式碼面
觀察一下網址

https://trends.google.com/trends/explore?date=2004-01-01%202004-01-02&q=stock

得到結論,在2015年前,都只有儲存當日資料,到2015開始可能才有每小時搜尋資料紀錄。
那麼接下來就可以爬2004年到2018年資料。
驗證成功,開爬

程式碼




結論



還蠻方便的可以快速地取得搜尋熱度,在github還有更多使用方法,希望早日可以找尋其中較穩的組合。
https://github.com/GeneralMills/pytrends

fbprophet 預測家模型 股票?

超簡單用Python預測股價

如圖,我也不知道我在寫什麼東西,就吸收整合,大不分的內容還是由比較正規的文章所引用,也有附上連結,有錯別來找我诶,我想入門的小白在搭建環境上會很雷,所以我通常會附上搭建環境的過程,以便大家可以快速run起來~

預測股票?


之前有寫過用lstm預測股票的東西,當然股票這種東西,不是長就是跌,大牛最多也是逼近50%50%不是漲就是碟嗎。不過放到中長期就不一樣了,如果再加入google tend關鍵字分析再來預測股票是否有其關聯性呢???,恩以後再來說先來做這實作先~

剛好聽同學說它們有參加一個比賽,然後呢,它們的主要工作是需要預測下一個禮拜股市的精準度,就我這旁門走道來看,lstm或者用這預言家模型,應該都可以達到不錯的效果,
假設我們要預測一個麗拜的資料需要大概那些能用的工具呢,第一步我們要把我們的資料禿通通時間序列化,再來就是套國外solution(公司大牛)說的,哈哈在接下來我們來看看之前兩個月沒動的程式碼吧。
首先呢我們打開我們的老程式碼跑一下範例。

速度迷思


我覺得痾應該速度再跑回測的時候有差拉,不過在觀察其規律性,要求速度的話在急速下單邏輯判斷一定要超快,像我之前寫的一個比特幣交易軟體,取得買賣單量瞬間下單,最後還是被官網鎖了,只能說莊家最大,然後喔一定會找到適合你的組合最重要,程式跑回測,不一定是找到聖杯,除非你的策略寫的超棒,無破綻,去跑當沖,每秒幾十萬上下,2018二月全球股災~黑天鵝是機器人? 遇到一次就gg囉,不過有人贏就有人輸,我是年輕人還是先在旁邊觀察一陣子好了。
「連鎖破壞」的圖片搜尋結果

搭建環境與安裝


# bash $ pip install fbprophet

慘慘慘 轉用anaconda裝

conda update -c conda-forge conda
conda update -n base conda
conda config --add pinned_packages defaults::conda
conda install  -c conda-forge fbprophet -y
conda install -c masdeseiscaracteres ta-lib


複製stocker


不想下一堆指令的話,可以偷懶學我把關聯py丟到目錄下



nice解決環境好利器,搜尋了快一小時還以為當機,惱人的環境設定,中途還跑去裝docker,結果windows hyper 要專業版才有QQ 我畚箕安裝的python 資源包,一堆元件衝突總而言之,安裝好後呢(anaconda裝了很多次結果降版本Anaconda3-5.2.0-Windows-x86_64.exe 這就大概裝完囉。

程式碼


小改

運行畫面

其實,用來預測一些事情也蠻好玩的。


國外github
預言家github


幻想


目前大概再搭建玩平台後,現在目前都是寫小策略,那麼嘗試投資組合使用基因演算法(?),
簡單成效好、不簡單成效好、簡單成效不好、不簡單成效不好。(取自量化實驗室片段)
就上述這幾種情況,大家應該都會偏向於第一種方法因為就算是失敗的話,也很好找出原因並且除錯,大概在跑兩個範例,google tend對金融性產品 是否也有其關聯,在來就是一些小策略的紀錄。
沒意外後其大概都是

  1. 提出組合
  2. 回測
  3. 修正

回測 - > 修正 - > 回測 - > 修正 - > 回測 - > 修正 - > 回測 - > 修正 .......

public int debug()
{
if(debug == 1)
debug(1);
return debug(1);
}目前活在這種地獄,重構,非同步,deubg無限循環,體驗新手村的感覺,什麼時候可以用嘴巴寫程式。。。。。。。

Thursday, November 8, 2018

弔詭

想留也留不住的東西,只能隨他去了,如果這樣能夠高興的話!!
找到以前畫的中二東西,RECORD 換個興趣應該也不錯?

汗...終於完成員工訓練了zzz雖然是假資料,當然還是要做一下假處理


Sunday, October 14, 2018

Flex 探索筆記



工作室暫時告一段落,
連工作也換一種新的看能不能轉換心情一下,高軟裡面之前參加研討會來過,整體還蠻不錯的~
順便來去看看業界真正的寫法,工作越來越弔詭了,跑到一間醫療科技的公司,系統使用的程式語言算是骨灰等級的接下來幾天內都來做寫一下各個控件的筆記...
大神級員工四處都是在不趕快進入狀況我看要被資遣了xd

Flex筆記 hackmd版

現在寫教學文不太想用這寫Html script了有點麻煩哈哈,插入都要在撰寫和html切來切去
來用以前再跟同學研究程式碼,用的一種共享筆記的網站Hackmd。

假設以後有人來我再把新手筆記建立一下。
整個就很乾淨,
只適合有一定物件導向概念的新手還有不喜歡看程式碼和圖文的人
快速上手的人我覺得這樣的方式比較適合我哈哈。
一般來說要看純技術文件慢慢啃阿ActionScript,像我英文有點弱的人都喜歡看程式碼然後才去理解。



Friday, October 5, 2018

基因演算法 與決策



我們來看一下莫凡老大的code在一個不知道答案的時候有沒有一種逼近或者最大效率的一種演算法來求得答案呢
在選擇策略的時候到底可以應用在哪,來做一下小筆記,那麼我的理解是

上次說要應用到決策方式,程式碼大概是說這樣
那大概就是說,
一組DNA可能

[000000000000]

產生下一代,將會做隨機分割,還有變異,隨機交配

隨機分割


[1000000/00000]
[00000/0000001]

隨機交配


在基因序列李,盡量選擇得分最高也就是fitens最高的進行配對

這將會讓基因越來越棒,
[1000000000/00]
[0000000000/01]
也就是
[1000000000]
[01]
進行交配
最後交配完可能得到
[100000000001]

隨機變異


[1,0,0,0,0,0,0,0,[0/1],0,0,1]
那麼好的跟好的交配一定更好嗎?
不一定,或許變異後有機率產生更好的DNA也說不定
所以會有基因變異的東東,
交配完後,隨機在DNA裡面挑取一個基因片段進行變異
那麼應用方面應該就是他所周哥所說的fitens
那麼我們要怎樣定義什麼是好的基因呢?
假設產生下一代的話我們對陣列中的元素做計分的動作,
分數越高 ,就代表基因越優

弔詭時間


我們要怎樣遷入股票這咚咚也就是前幾天所搭建的平台所提到的基因演算法

遺傳演算法最佳化高頻交易策略

額從哪裡下手呢
對策略
接下來要怎麼進行的策略分析.....

參考


Wednesday, October 3, 2018

軟體工程師的鄙視鏈


最近這幾年在世界各地突然吹起了一股全民寫程式的風潮,連美國總統歐巴馬都在寫 JavaScript 了,但是身為一介靠寫程式(以及在上班時間胡亂上網)來謀生的 developer(所謂的 developer 就是「軟體工程師」的比較潮的說法),想要提醒那些想學習寫程式的人一件重要的事:慎選你的第一個程式語言。



在軟體工程師(中國叫做「程序員」或「碼農」)的圈子裡,文人相輕的現象可是非常嚴重的,在程式設計的各個領域裡都有著錯綜複雜的「鄙視鍊」。從程式語言、編輯器、平台到 { 是寫在 if 的同一行還是下一行,不同陣營的人都習慣鄙視來鄙視去。而其中「你用什麼程式語言?」更是大家最熱衷的一條鄙視鍊,所以對於剛踏入程式設計領域的初學者來說,萬一程式語言選得不好,可是會一開始就落入鄙視鍊的底層啊。



軟體工程師的鄙視鏈到底有多慘烈、多殘酷呢?



程式語言篇


懂 Functional Programming 的工程師鄙視老是把設計模式掛在嘴邊的工程師,老是把設計模式掛在嘴邊的工程師鄙視會說「你這樣寫就不 OO 了啊」的工程師,會說「你這樣寫就不 OO 了啊」的工程師鄙視會說「蛤?什麼物件導向?不是把重複的 code 寫成一個 function 就好了嗎?」的工程師,會說「蛤?什麼物件導向?不是把重複的 code 寫成一個 function 就好了嗎?」的工程師鄙視把同一段 code 到處複製貼上的工程師,把同一段 code 到處複製貼上的工程師鄙視 PM。


寫靜態語言的工程師鄙視寫動態語言的工程師。



寫組合語言的工程師鄙視寫 C 語言的工程師,C 語言工程師鄙視 C++ 工程師,C++ 工程師鄙視 Java 和 C# 工程師,Java 工程師和 C# 工程師則互相鄙視,而 C# 工程師又鄙視 Visual Basic 工程師和會把 C# 唸成「C 井」的工程師,會把 C# 唸成「C 井」的工程師則鄙視認為 HTML 是一種程式語言的設計師。



用 Python 3 的工程師鄙視還在用 Python 2 的工程師,用 Python 2 的工程師鄙視遇到 UnicodeEncodeError 的工程師。



寫 iOS 的工程師鄙視寫 Android 的工程師,寫 Android 的工程師鄙視寫 Windows Phone 的工程師。



有 Swift 一年經驗的工程師鄙視有 Objective-C 五年經驗的工程師,寫 Objective-C 的工程師鄙視用 PhoneGap 包裝成 native app 的工程師。



用 React.js 的工程師鄙視用 AngularJS 的工程師,用 AngularJS 的工程師鄙視用 jQuery 的工程師,用 jQuery 的工程師鄙視用 Vanilla JavaScript 的工程師,用 Vanilla JavaScript 的工程師鄙視 IE 的使用者。



會用 debugger 的工程師鄙視用 assert 的工程師,用 assert 的工程師鄙視只會 print() 的工程師;用 console.log() 來 debug 的工程師鄙視用 alert() 來 debug 的工程師。



寫 Ruby on Rails 的工程師鄙視所有使用其他語言的工程師。
什麼?你說 Ruby?Ruby 只是 Ruby on Rails 的一套框架,才不是什麼程式語言呢!



所有的工程師都鄙視 PHP 工程師。




工具篇


用 text editor 的工程師鄙視用 IDE 的工程師。


用 Vim 的工程師鄙視用 Emacs 的工程師,用 Emacs 的工程師鄙視用 Vim 的工程師,無論是用 Vim 或 Emacs 的工程師都鄙視所有用其他編輯器的工程師;用 Atom、Notepadd++、Sublime Text 的工程師鄙視用 Windows 記事本的工程師。



用 Android Studio 或 IntelliJ IDEA 的工程師鄙視用 Eclipse 的工程師,用 Eclipse 的工程師鄙視用 NetBeans 的工程師。



用 Git 或 Mercurial 的工程師鄙視用 Subversion 的工程師,用 Subversion 的工程師鄙視用 Dropbox 來做版本控制的工程師,用 Dropbox 來做版本控制的工程師鄙視根本不知道什麼叫做版本控制的工程師。



用 Zsh 的工程師鄙視用 Bash 的工程師,用 Bash 的工程師鄙視用 Cygwin 的工程師,用 Cygwin 的工程師鄙視用「命令提示字元」的工程師,用命令提示字元的工程師鄙視用 GUI 介面的工程師。



用 IRC 的工程師鄙視用 HipChat 的工程師,用 HipChat 的工程師鄙視用 Slack 的設計師。






用 reStructuredText 寫文件的工程師鄙視用 Markdown 寫文件的工程師,用 Markdown 寫文件的工程師鄙視用 HTML 寫文件的工程師,用 HTML 寫文件的工程師鄙視不寫文件的工程師,然後用 LaTeX 寫文件的工程師鄙視所有工程師。



用 Docker 來部署 server 的工程師鄙視用 Ansible 或 Puppet 來部署 server 的工程師,用 Ansible 或 Puppet 來部署 server 的工程師鄙視用 Fabric 來部署 server 的工程師,用 Fabric 來部署 server 的工程師鄙視手動 SSH 的工程師。


OS篇


用 Mac OS X 的工程師鄙視用 Linux 的工程師,用 Linux 的工程師鄙視用 Windows 的工程師。


用 Debian 的工程師瞧不起用 Ubuntu 的工程師,用 Ubuntu 的工程師瞧不起用非 LTS 版本的 Ubuntu 的工程師。


硬體篇


用 MacBook Pro Retina 的工程師鄙視用 MacBook Air 的工程師,用 MacBook Air 的工程師鄙視用 ThinkPad 的工程師,然後用 Raspberry Pi 的工程師鄙視用 MacBook Pro Retina 的工程師。

用 Dvorak 鍵盤的工程師鄙視用 Mac 鍵盤的工程師,用 Mac 鍵盤的工程師鄙視用 QWERTY 鍵盤的工程師,用 QWERTY 鍵盤的工程師鄙視用手寫板的設計師。



坐 Aeron 椅子的工程師鄙視坐普通辦公椅的工程師,坐普通辦公椅的工程師鄙視跟他一樣做普通辦公椅的 PM,然後站著寫程式的工程師鄙視坐 Aeron 椅子的工程師。


職場篇


搞硬體的工程師鄙視搞軟體的工程師。


寫 OS 的工程師鄙視寫 Web 的工程師,寫 Web 的工程師鄙視寫 desktop application 的工程師。



後端工程師鄙視前端工程師。



工程師跟設計師互相鄙視。



信奉 Test-Driven Development 的工程師鄙視先寫 code 再補 tests 的工程師,先寫 code 再補 tests 的工程師鄙視不寫 tests 的工程師,不寫 tests 的工程師鄙視又他媽亂改需求的 PM。



沒有證照的工程師鄙視考了一堆證照的工程師。



上班穿休閒服的工程師鄙視上班穿西裝的工程師,上班穿西裝的工程師鄙視上班穿系服的工程師。



---



如果你看了以上這些慘絕人寰的鄙視鍊之後,仍然沒有擊倒你想要學習 coding 的心,那我必須提醒你一件最重要的事:先去交一個女朋友,再來學寫程式;因為一旦你成為軟體工程師之後,就交不到"女朋友"了。

看完大概挖感同身受阿,這應該是精華所在,算是一篇勸世文吧。


Tuesday, October 2, 2018

逆滲透 來自Africa的一則訊息

????



來分享一下,也算我平常恐嚇詐騙集團的方法xd
奇怪根本沒人會密宅男阿?????,中午來自一則
aisha gaddafi 

進行一下調查aisha gaddafi scam

稍微查了一下ㄏㄏ對方要了hangouts當然給它
那麼開始逆滲透吧,首先誘導對方點入網址
再來呢也不用到什麼程式碼把服務器架起來,等待對方連入

再來把網址加密,用以前的ngor連到外網再用google 短網址加密一下,另一方面,隱藏網址訊息

再次確認對方位置
ㄏㄏ很久沒人跟我玩詐騙遊戲了
只可以拿到它當地的電信,Isp硬要查的話它們就慘囉,當然ㄏㄏ非洲判刑好像蠻重的原諒它好了


ㄏㄏ嚇到趕快封鎖囉,cool right?

Saturday, September 29, 2018

Golang Json的回傳與畫出股市蠟燭圖

打造股票回測



Debug時間


這樣跳來跳去進度會不會超太快xd
剛剛的教學已經大致上完成一部分了,大家比較有問題的在
要改直接改源碼的話,就注意資料庫的ip和密碼和table表,
還有在route的網址所對應的網址基本上應該是沒什麼難度
golang的時間轉timestamp

還有
golang回傳json的格式在有些網站的時候json格式並不會照你的方式走,
不是你配合它就是它配合你(應該不可能xd
那麼接著早上繼續坐下去
  • 架設伺服器回傳json
  • 畫折線圖

Highcharts



highcharts這次是我們主要用來顯示股票的插件
這邊是改裝後的程式碼

回傳Json


這邊的話還是依樣用查詢方式來做

整體程式碼



看著我你CSV你才能動->>>>CSV檔案下載



伺服器方面的部分呢還是用ngork進行對外連接,今天差不多就到這裡,golang速度超快,其實做到這邊,golang就差不多熟了,那可能比較深入一些函數像是執行續拉等等沒碰到,golang應該很快就可以上手。
golang學習

Golang 數據處理與 Mysql 基礎語法

打造股票回測/盯盤網頁

目標


昨天有說到要打造一個用redis資料庫,後來想一想這是用在有快取場合的方面,那麼
我們能做到什麼呢,我打算用golang mongodb jquery來實現我們的框架初步回測的框架
那麼我們可能需要完成下列清單不過我們先用mysql搭起來熟悉一下環境吧~
整個流程跑完苦
  • 數據的導入
  • 架設伺服器回傳json
  • 畫折線圖
  • 新增回測按鈕與篩選條件
  • 打造一個盯盤軟體

數據的處理


看著我你CSV你才能動->>>>CSV檔案下載

就是說這一次的話沒想過要弄爬蟲,相信大家可以在很多地方找到股票的歷史資料,
我們今天就對數據做一個處理吧首先我們先來直上代碼
這邊代碼我們把檔案讀進去了接下來看要怎樣對上傳CSV檔案到SQL資料庫吧

Mysql 的 常用函數



我大致上把它整理一下

讀csv檔與上傳到數據庫


每一檔股票都它其編號,所以呢我們可以create一個table名稱對應股票的代號這邊先做個簡易版
先來讀一下檔

綜合下
在資料的insert速度超快跟python比差一大截

Wednesday, September 26, 2018

Golang 搭建一個簡單Http Server

上一次我們講到安裝Golang那麼今天我們來看如何架設一個跟網頁溝通的伺服器

Setting


go get -u github.com/gorilla/mux

安裝套件的過程它不會講話xd,套一句老師說的沒消息就是好消息
 

放置檔案路徑,沒什麼難度,放到資料夾而已。


上述相關文件安裝完後,沒想到的是,只要設定好route,仔細看整組搬過來就可以了這是比較正規的作法,當然網路上也有其他更暴力的方法(牛逼稍微進行一下小改裝


後續


整組搬來用是不錯啦,這樣的話我們做處理的時候可以在golange做處理了
之前在python寫的交易系統,在前段時間呢看到了一個 影片
遺傳演算法最佳化高頻交易策略 沒錯很喜歡模擬的我們呢已經搭建好這框架了
至於資料庫呢,既然都是用新技術在做事了,學習一下用redis 當作資料庫

讓我們速度起飛!