●FB https://www.facebook.com/groups/248705245950294 ●YT https://www.youtube.com/channel/UCTcXwTLJM62hYzCAQ6fA5tg ●FB粉絲團: https://m.facebook.com/00bnf/ ●東京交易故事(電子書/影音): 東京交易故事1-BNF交易手法解說1 東京交易故事2-BNF交易手法解說2 東京交易故事3-BNF交易手法解說3 東京交易故事4-日本股神CIS-1 東京交易故事5-日本股神CIS-6 東京交易故事6-BNF自己流1-3 東京交易故事7-秒速億元男的哲學1 東京交易故事8-秒速億元男的交易手法和BNF的交易哲學 東京交易故事9-TW自己流1 東京交易故事10-秒速億元男的交易手法2 東京交易故事11-TW自己流2(選擇權的波動交易策略) 東京交易故事12-TW自己流3(綜合實戰策略: 選擇權+現貨對沖) 合図【あいず】信號,暗號 #cis #股神 #BNF #逆勢接刀 #短線交易 #日本股神bnf研究會
2023年9月6日 星期三
google sheet-appscript-vba-1分K整理
2023年9月5日 星期二
【Python交易程式開發現場59】*產生交易訊號 (17) | 將交易訊號送至下單函數 | 交易訊號下單在OnNotify()
2023年9月4日 星期一
【Python交易程式開發現場41】*產生交易訊號 (4) | 用pyqtgraph畫動態均線圖 (twMASignal.py)
【Python交易程式開發現場20】*畫1分K線(6) | numpy array, tuple的轉換問題 | 時間軸必須為數字的解決 | twCandleStick.py
1. numpy array, tuple的轉換問題
Python中的list与NumPy中array的区别 及相互转换
>>> a=numpy.array([[1,2,3],[4,5,6]])
>>> a
array([[1, 2, 3],
[4, 5, 6]])
>>> tuple(a.reshape(1, -1)[0])
(1, 2, 3, 4, 5, 6)
(1) range(n):表示產生 0 至 n-1 的數列
範例:產生0至10的數列
>>> a=range(11)
>>> type(a)
<class 'range'> #由range函數產生的資料型態為range
>>> a=list(a) #使用list()函數來轉換成串列型態
>>> print(a)
執行結果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(2) range(start,end):start為起始值,end為終止值,產生 start 至 end-1 的數列
範例:產生1至10的數列
>>> a=list(range(1,11))
>>> print(a)
執行結果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2023年8月4日 星期五
vscode-debug-jupyter notebook
https://pythonviz.com/colab-jupyter/visual-studio-code-jupyter-notebook-integration/
第 4 步:匯出至 Python 檔案或 HTML 檔案
完成 Jupyter Notebook 編程後,自然地我們會有 2 個選擇:
- 把 Jupyter Notebook 匯出成 PDF 或 HTML 檔案,儲存為報告
- 把編程結果匯出成 .py 檔案,讓我們可以使用 Terminal 運作代碼
2023年8月3日 星期四
vs-code-debug (pdb能順利trace進入外部程式模組..)(找到了VS Code debug外部程式的關鍵: justmycode=false+purpose: ["debug-in-terminal"])
結論: 最後, 發現真正管用的是PDB..
1. pdb能順利trace進入外部程式模組..
2. pdb.run("print(df)")
3. 還是找到了VS Code debug外部程式的關鍵: 真的是在justmycode=false後面加上purpose: ["debug-in-terminal"]就OK了
4. 不錯的debug功能: 預覽呼叫階層(可以反查某函數被誰呼叫)
[关于vscode调试时跳不到本.py或本.ipynb文件之外的问题_vscode打不开ipynb_Jay E的博客-CSDN博客](https://blog.csdn.net/Edward__J/article/details/129804740?utm_medium=distribute.wap_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-129804740-blog-111991099.237&fbclid=IwAR1_J5RbBaO4iZEGaitTVtWXtW1RvtbfFstK2waBugQG8taZZg2m_Smw6pk) [[Obsidian-Highlights]]
還是找到了VS Code debug外部程式的關鍵: 真的是在justmycode=false後面加上purpose: ["debug-in-terminal"]就OK了
5. 日内对齐等交易时长K线生成器的实现
5.1 确定K线生成器MyBarGenerator的生成规则
5.1.1 一步到位地解决问题
先给它取个名称,就叫MyBarGenerator吧,它是对BarGenerator的扩展。
不过在构思MyBarGenerator的时候,我发现它其实不应该叫“日内对齐等交易时长K线生成器”。因为我们不应该只局限于日内的n分钟K线生成器,难道vnpy系统就不应该、不能够或者不使用日线以上的K线了吗?我们只能够使用日内K线进行量化交易吗?难道大家都没有过这方面的需求吗?我想答案是否定的。
那好,所幸就设计一个全功能的K线生成器:MyBarGenerator。
为此我们需要扩展Interval的定义,因为Interval是表示K线周期的常量,可是它的格局不够,最大只能到周一级WEEKLY。也就是说您用目前的Interval是没有办法表达月和年这样的周期的。
class Interval(Enum):
"""
Interval of bar data.
"""
MINUTE = "1m"
HOUR = "1h"
DAILY = "d"
WEEKLY = "w"
TICK = "tick"
MONTHLY = "month" # hxxjava add
YEARLY = "year" # hxxjava add
顺便在这里吐槽一下BarGenerator:
- 目前的BarData中包含了一个interval字段的,可是它在BarGenerator的时候根本就没有使用过,而使用它本是信手拈来的事情,但是没有却没有使用。如果不信,你可以去看看用它产生出来的bar的内容。
- 另外本来还应该增加一个秒单位(SECONDLY = "1s")的,这个单位其实对高频交易也是很有需求的,可是现在却没有。不知道大家对此有什么看法。
https://www.vnpy.com/forum/topic/30193-che-di-jie-jue-kxian-sheng-cheng-qi-de-wen-ti-yi-ge-ri-nei-dui-qi-deng-jiao-yi-shi-chang-de-kxian-sheng-cheng-qi
prog-0318
test test1 Written with StackEdit .
-
程式執行時遇到了: ModuleNotFoundError: No module named ‘comtypes.gen.SKCOMLib’ 1. 參考網路解答1:(失敗收場) 問題:ModuleNotFoundError: No module named ‘comtypes.g...
-
群益API: m_nCode回報錯誤代碼2017之處理 class MyMainWindow ( QMainWindow , Ui_Form ): def __init__ ( self , parent = None ): super ( ...
-
結論: 1. 用dict建dataframe時, 要設index df = pd . DataFrame ( dictRepStock , index = [ 0 ]) 2. 於pandas加一筆data要用concat, df_RepStock = pd . conc...