2023/07/04

Shioaji 1分k轉成其他分k

 永豐shioaji可以把1分k做匯出,然後在自行轉成其他分k。

做法通常就是把1分k資料用pandas轉換成datafram,然後在用resample的方式,轉成其他的分k。

不過在轉成其他分k時,會遇到兩個問題。

第一是轉成其他k分時,會有從左邊算起或右邊算一起的問題,這就會影響到資料的正確性,關於這個,可以參考https://ithelp.ithome.com.tw/articles/10280495 這篇文章,用label跟closed兩個參數去調整資料的正確性。

系統預設是左邊,但在轉換shioaji的資料時,要從右邊算,出來的分k開高收低才會對。

第二個問題是在用resample重把切分1分k時,都是以完整一小時去切,譬如說你要換成30分k,系統就會用x點00分跟x點30分去切,但台指開盤是8點45分,應該要切成x點15分跟x點45分。

這時後就要在加一個base的參考,範例可參考 https://towardsdatascience.com/using-the-pandas-resample-function-a231144194c4 這篇最後面‘Base’ Argument的說明。


另外就是1分k只能用日期 去過濾,但裡面會包含到日跟夜盤的資料,如果只要日盤,或是特定時間,就要用between_time這個參考去過濾,範例可去https://geek-docs.com/pandas/pandas-dataframe/python-pandas-dataframe-between_time.html 看看。

Linux nautilus程序佔用cpu效能

 在執行top查看系統效能狀況時,發現有一支程序nautilus佔用了很高的cpu效能,但整體的cpu效能使用率還是很低,沒影響到系統整體的運作。


nautilus是在圖型介面,像是檔案總管的一個程序,透過"who"指令,確認還有一個透過圖型介面登入的session沒關閉,連上去之後果然發現很多資料夾視窗沒關閉,是其他人員之前在設定一些東西時,設定好就直接中斷沒關掉的。

將這些資料夾關一關,登入圖型介面後,這些程序也就不見了。

The Linux program Nautilus is consuming CPU resources.

While checking the system performance using the "top" command, I noticed that the Nautilus program is utilizing a significant amount of CPU power. However, the overall CPU usage remains low, and it does not affect the overall operation of the system.

Nautilus is a graphical interface program, similar to a file manager. By using the "who" command, I confirmed that there is still an active session logged in through the graphical interface. After connecting to it, I discovered that many folder windows were left open, which were not closed after configuring some settings by other personnel.

By closing these folders and logging into the graphical interface again, these programs disappeared.

2023/06/29

Teams 會議來賓無法文字聊天

 原本在使用Teams會議時,沒帳號的來賓,也可以透過"聊天"功能用文字聊天。但最近突然不能用。

在測試時,卻發現有時後可以,有時後不行,仔細比對操作方式,發現了為何會有這種狀況。

Teams的會議有分頻道會議跟一般會議,發起會議的地方在不同的頁面上,通常發起會議都是頻道會議,因為登入後的畫面就是會在發起頻道會議的地方。

1.在"團隊"裡建立的會議,不管是排程或立即開會,都是頻道會議。來賓是無法使用文字聊天。

2.在"行事曆"裡建立的會議,不管是排程或立即開會,都是一般會議。來賓是可以使用文字聊天。

其他差異可參考 https://atlas.utdallas.edu/TDClient/30/Portal/KB/ArticleDet?ID=300





Guests in Teams meetings are unable to chat via text.

Originally, during Teams meetings, guests without an account could also engage in text chat using the "Chat" feature. However, recently this capability suddenly became unavailable.

During testing, it was observed that sometimes it worked, while other times it didn't. After carefully comparing the steps taken, the reason for this situation was identified.

Teams meetings can be categorized as channel meetings or regular meetings, and the location for initiating a meeting is different on the interface. Typically, meetings are initiated as channel meetings because upon logging in, the interface is directed to the channel meeting initiation section.

Meetings created within "Teams" are always channel meetings, regardless of whether they are scheduled or started immediately. Guests cannot use text chat in these meetings.

Meetings created within the "Calendar" are always regular meetings, regardless of whether they are scheduled or started immediately. Guests can use text chat in these meetings.




2023/06/16

Backup exec 伺服器的 Symantec\Backup Exec\BEDBG 資料夾內有很多佔容易的cab檔

 Backup exec 伺服器的C槽空間快不夠了,看了一下裡面的東西,發現 Backup exec 的程式資料夾中,其中一個BEDBG資料夾用了比較多空間,在裡面看到很多cab檔。

上網查了一下,這是 Backup exec 當掉後就會產生的dump檔,如果有需要查原因就可以去讀取這些cab檔。

不需要查的話,這些檔案就可以砍掉清空間。


The available disk space on the C drive of the Backup Exec server is running critically low. Upon investigating the contents, it was observed that the BEDBG folder within the Backup Exec program directory is consuming a considerable amount of space. Upon further inspection, it was discovered that the folder contains multiple CAB files.

After conducting research online, it was determined that these CAB files are generated as dump files by Backup Exec in the event of a system crash. These files can be accessed for troubleshooting purposes to identify the cause of the crash, if necessary.

If there is no need for further investigation, it is recommended to delete these files in order to reclaim disk space.


2023/06/14

HTTPS 網站的SSL 憑證發行者 變成 Kapersky

HTTPS網站的憑證發行者,通常都是顯示該憑證的發行商, 

但在某些網站查看憑證資訊時,發行者會變成Kapersky,在功能上沒影響,但不知為何會如此。

查了一下才發現,如果防毒軟體有啟用HTTPS的掃描檢查,防毒軟體就會安裝自己的憑證,以便檢查HTTPS傳輸。

如果把這個HTTPS加密傳輸的檢查關了,就不會有憑證發行者被換掉的狀況了。

卡巴斯基企業版的端點防護(KES)HTTPS加密傳輸掃描設定,是在一般設定中的網路設定裡,可以做啟用或關閉。




The issuer of an HTTPS website certificate typically displays the certificate's issuing authority. However, in some cases, when viewing the certificate information on certain websites, the issuer appears as "Kaspersky" instead. This does not affect the functionality of the certificate, but the reason behind this change is unclear.

Further investigation revealed that if antivirus software has enabled HTTPS scanning, it installs its own certificate to facilitate the scanning of HTTPS transmissions.

By disabling the inspection of encrypted HTTPS traffic, the situation of the certificate issuer being replaced can be avoided.

The setting for HTTPS encrypted transmission scanning in Kaspersky Endpoint Security (KES), the enterprise edition of Kaspersky, can be found in the general settings under network settings. It provides the option to enable or disable this feature.


2023/06/12

Shioaji 篩選 目前週選的TX代號

 現在選擇權代號通常會有當週,下週,跟月選3個合約,如果現在是第一週,就是有TX1,TX2,TXO,三個。只有第三週是2個(TXO跟TX4)。

目前的python語法裡TX是寫死的,每周要自己手動改,有點煩,所以就想了一個動判斷的語法,來抓今天是該是TX幾。

主要就是判斷連續兩週的合約有沒有值,如果都有的話,那TX就是比較小的那個。

像是TX1跟TX2都有值,那今天就會是TX1。

第三週因為是抓TXO跟TX4,但第四週也會有TXO跟TX4,所以這一個判斷要放在最後面才行,不然第四週會被先判斷成是TXO。

#抓當週的週選的TX代號
if api.Contracts.Options['TX1'] != None and api.Contracts.Options['TX2'] != None:
    TX = 'TX1'
    print(api.Contracts.Options[TX])
elif api.Contracts.Options['TX2'] != None and api.Contracts.Options['TXO'] != None:
    TX = 'TX2'
    print(api.Contracts.Options[TX])
elif api.Contracts.Options['TX4'] != None and api.Contracts.Options['TX1'] != None:
    TX = 'TX4'
    print(api.Contracts.Options[TX])
elif api.Contracts.Options['TX4'] != None and api.Contracts.Options['TX5'] != None:
    TX = 'TX4'
    print(api.Contracts.Options[TX])
elif api.Contracts.Options['TX5'] != None and api.Contracts.Options['TX1'] != None:
    TX = 'TX5'
    print(api.Contracts.Options[TX])
elif api.Contracts.Options['TXO'] != None and    api.Contracts.Options['TX4'] != None:
    TX = 'TXO'
    print(api.Contracts.Options[TX])

2023/06/04

FreeFileSync 同步檔案時出現 sync.ffs_lock的相關錯誤 code error 5: Access refuse [create file]

 在win2019透過freefilesync要把遠端win2003的檔案同步過來本機的時後,有些資料夾都會出現錯誤,內容都是在本機端的資料夾中 sync.ffs_lock有錯誤, code error 5: Access refuse [create file]。

照字面上的意思應該就是同步的過程程式要產生一個sync檔,但無法建立。

可是我在本機端自己建立檔案時,都沒什麼異狀,就覺得很怪。

後來就手動用複製貼上檔案的方式,發現有時後會跳出錯誤訊息,大概就是說沒有權限,要用系統管理者執行之類的,可是我就是用本機管理者帳號在執行啊。

這時突然想到,那執行freefilesync時,要用系統管理者身份去執行,有三四個在同步會跳錯誤的資料夾,就通通都沒問題了。


When using FreeFileSync on Windows Server 2019 to sync files from a remote Windows Server 2003 to the local machine, some folders encounter errors. The error message states that there is an issue with the "sync.ffs_lock" file in the local folder, with error code 5: Access refused [create file].

According to the literal meaning of the error, it seems that the sync process is unable to create the "sync" file.

However, I noticed that there were no issues when manually creating files on the local machine, which struck me as odd.

Later, while manually copying and pasting files, I encountered occasional error messages indicating a lack of permission and suggesting the need for administrator privileges. However, I was already using the local administrator account to perform the operation.

At this point, it occurred to me that when running FreeFileSync, it should be executed with administrator privileges. When I ran the program as an administrator, the folders that were previously causing errors during synchronization, about three or four of them, synced without any problems.

2023/06/02

pyinstaller py轉exe出現錯誤:The 'pathlib' package is an obsolete

 在用pyinstaller把一個py檔要轉成exe執行檔時,出現下列錯誤

The 'pathlib' package is an obsolete backport of a standard library package and is incompatible with PyInstaller. Please remove this package (located in C:\Users\helloeveryone\Anaconda3\lib\site-packages) using  conda remove then try again.

這時就執行 pip uninstall pathlib ,把pathlib移除就好,移除後不需要再重裝一次。

之後執行pyinstaller,就可以成功把py轉成exe了。



When using PyInstaller to convert a .py file into an executable (.exe) file, the following error occurs:

"The 'pathlib' package is an obsolete backport of a standard library package and is incompatible with PyInstaller. Please remove this package (located in C:\Users\helloeveryone\Anaconda3\lib\site-packages) using conda remove then try again."

To resolve this, execute "pip uninstall pathlib" to remove the pathlib package. After removing it, there is no need to reinstall it.

Afterward, running PyInstaller should successfully convert the .py file into an .exe file.


2023/06/01

Shioaji 篩選 期貨 日盤的kbars

Shioaji 在撈Kbar資料時,可以指定開始跟結束的"日期",然後就產出這段時間的一分k資料 。

假如是撈期貨的資料,就會把日盤跟夜盤的kbar全部列出來。



如果只想要日盤或夜盤,或是某幾小時內的資料時,就要做個篩選。
篩選的方式就是:
1. 先把dataframe裡的ts欄位設成index
df.set_index('ts',inplace=True) 
2. 在用between_time的功能,選出要的時間區間,就完成了。
df=df.between_time('08:44', '13:46')


可以參 考這篇
https://geek-docs.com/pandas/pandas-dataframe/python-pandas-dataframe-between_time.html





2023/05/31

永豐 e-leader 選擇權搭配autoit 做自動下單平倉 bug

 本來都有設定autoit做收盤前的自動平倉單功能。

昨天並沒開倉下單,所以就算執行了自動平倉也不會生效。

但晚上就發現居然有庫存,autoit的自動平倉居然變成開倉雙買了。

然後還賺了一點錢,好佳在,如果是雙賣就虧慘了。

然後仔細檢查了一下autoit裡面的程式,發現下單的下拉選單(開倉,停損,停利,自動)這個鈕的按鈕參數,在完全沒下過單跟有先下過單(任個一種單因)的狀況下,是不相同的。TR<>裡面那串數字會變動。

ControlCommand("e-Leader - [[6508]多次IOC :(0) TR<540001>]","","ComboBox8","SelectString",'平倉停損')

實在太奇怪了,所以如果沒下單,要把視窗關了,不然到時就會變自動開倉下單了。