MT軟件自動運行在VNCServer
這幾天在將外彙交易半自動化。
所謂半自動化,是將交易程序簡單化,放在遠程服務器中,以多個Metatrader來運行。而實際操作則以Tradingview發送買賣命令。
Tradingview隻負責入場信號,通過WebHook技術傳送至MT,MT則負責損益比、資金管理等等。一台6CPU的遠程服務器至少可以運行6-12個MT進程,相當於有6-12個交易員運行指令。
現代科技確實大大提高了生產力,使得外彙交易的閑解有條件完成。
不過需要解決一個技術問題,是保證運行MT軟件的服務器一直在運行。
前一段時間覺得VNCServer不太穩定,使用了X2GO。但運行幾天發現X2GO缺省狀態必須客戶端軟件一直連線,服務器端才會持續運行。這個有違自動化初衷,安裝個X2goDesktopShare可以解決,但此插件太占內存,操作服務器極為不順暢。
故又回到VNCServer的方式,不過這次打算:
- 一優化性能,令VNCServer少出錯
- 二用腳本解決問題,發現VNCServer出錯則自動重啟,並將MT軟件一一運行。
記錄於此,以備再起一台服務器增加MT進程。
- 遠程主機安裝VNCServer、XFCE圖形界麵、Wine
- 令VNCServer支持客戶端的Clipboard。修改
~/.vnc/xstartup
文件
#!/bin/bash
xrdb $HOME/.Xresources
autocutsel -fork
startxfce4 &
-
關閉服務器Power-saving
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target -
關閉XFCE屏幕保護,Setting–»Screensaver
-
啟動VNCServer時自動啟動MT軟件,建立
~/.config/autostart
目錄,新建.desktop文件如lux.desktop文件內容如下:[Desktop Entry] Encoding=UTF-8 Version=0.9.4 Type=Application Name=Lux MetaTrader 4 Comment=MetaTrader 4 Exec=wine "C:\\Program Files (x86)\\Global Prime - MetaTrader 4\\terminal.exe" OnlyShowIn=XFCE; StartupNotify=false Terminal=false Hidden=false
-
建立腳本文件
~/vnccheck.sh
#!/bin/bash export USER="joanna" SERVICE='Xtightvnc' if /usr/bin/pgrep $SERVICE > /dev/null then exit 0 else sudo rm /tmp/.X1-lock sudo rm /tmp/.X11-unix/X1 vncserver exit 1 fi #EOF
-
增加crontab任務,每分鍾運行一次
* * * * * bash -x /home/username/vnccheck.sh >> /home/username/vnc.log 2>&1
驗證成果:
Kill當前的VNCServer,腳本正常運行,並啟動了所有的MT進程。
6個MT進程通過vncviewer操作流暢,再啟動一下htop命令看看服務器負載
Load average 0.96,對於6CPU的服務器而言,隻用了1/6的負載,很有可能再加載6個MT也沒有問題。
相关文章:
- 2021/11/10 學習的回報率及交易係統資金管理
- 2021/10/20 現代行禪法
- 2021/10/20 金融交易穩定獲利漸法信閑慧定
- 2021/09/21 從小老頭到老小子
- 2021/09/19 行禪四句及知常曰明
Jesse Lau
網名遁去的一,簡稱遁一。2012年定居新西蘭至今,自由職業者。
本文采用知識共享署名 4.0 國際許可協議進行許可。簡而言之,可隨意轉發轉載,轉載請注明出處。