GithubHelp home page GithubHelp logo

gomoney's Introduction

goMoney

流程圖


流程圖

@startuml
!theme mars
participant "Client(本地端程式)" as ct
participant "Controller(流程管理)" as cr
participant "Service(商業邏輯)" as se
participant "API(第三方)" as ai

ct->cr: 送出查詢(Call 127.0.0.1)
cr->se: 呼叫對應的商業邏輯
se->ai: 呼叫第三方API

ai->se: 回傳查詢結果
se->cr: 回傳成功訊息/失敗訊息
cr->ct: 分析回傳的資訊
@enduml

使用說明


  1. 先將.env.swp檔名改成.env
  2. 填寫accessKey與secretKey

資料結構


controller -> 對應流程圖的流程管理

images -> 說明文件相關圖片存放處

service -> 對應流程圖的商業邏輯

.env.swp -> 請將檔名改成.env

go.mod -> 本程式有用到的相依套件

main.go -> 程式碼主程式

goMoney.exe goMoney執行主程式

編譯


go build -ldflags "-s -w"

gomoney's People

Contributors

teed7334 avatar teed7334-restore avatar

Watchers

 avatar

gomoney's Issues

讀取到買賣成交明細(一個星期)

請參考以下網址
https://max.maicoin.com/documents/api_list/v2#!/private/getApiV2OrdersHistory

因為目前Order History API,只有提供from_id與limit,指定要從那一張order_id為基礎,回傳最高1000筆,而資料排序無法設定,只能依市場(btctwd or ethtw or etc...),從第一筆Order開始抓,所以可以先用程式,依市場先抓回1000筆,比對其create_at是否於一週內,如果是的話,就記下create_at與order_id到設定檔去,這樣下次可以不用從頭開始抓,如果1000筆資料都不是一週內的話,則記下最後一筆order_id與create_at到設定檔去,透過from_id等於設定檔案order_id,重新再抓1000筆資料回來分析

確認帳號執行中,掛買掛賣的單

請參考以下網址
https://max.maicoin.com/documents/api_list/v2#!/private/getApiV2TradesMy

[需求]
確認MAX帳戶掛賣和掛買的值是否存在
(需要以下四種幣別)
BTCTW ETHTW BTCUSDT ETHUSDT
存在讀1 不存在讀0

[回傳值]
created_at: 訂單建立時間 (Unix timestamp)
created_at_in_ms: 訂單建立時間 (Unix timestamp in milliseconds)
fee: 交易費用
fee_currency: 交易費用貨幣種類
funds: 資金總額
id: id
info: 交易訂單詳細資訊
maket: 交易市場
market_name: 交易市場名稱
order_id: 訂單id
price: 交易價格
side: 交易類型(bid: 買入, ask: 賣出)

新增掛買賣/刪除掛買賣

請參考以下網址
[新增掛買/賣]
https://max.maicoin.com/documents/api_list/v2#!/private/postApiV2Orders

[刪除掛買/賣]
https://max.maicoin.com/documents/api_list/v2#!/private/postApiV2OrderDelete

[回傳值]
"id": 87:這是訂單的 ID,是一個數字。
"client_oid": "4511dc1f-4b28-4adb-a384-109384d3bc6e":這是客戶訂單的 ID,是一個字符串。
"side": "buy":這表示這是一筆買入訂單。
"ord_type": "limit":這表示這是一筆限價買賣訂單。
"price": "21499.0":這是買入價格。
"stop_price":"21499.0": 這是停止價格,這是一個限價買賣訂單所需要的參數,但因為這是一筆限價訂單,所以停止價格和限價價格一樣。
"avg_price": "21499.0":這是訂單成交價格的平均值。
"state": "done":這表示訂單已完成。
"market": "ethtwd":這表示交易的市場是 ETH/TWD。
"created_at": 1521726960, "created_at_in_ms": 1521726960123:這表示訂單被創建的時間。
"updated_at": 1521726960, "updated_at_in_ms": 1521726960123:這表示訂單最後被更新的時間。
"volume": "0.2658", "remaining_volume": "0

[名詞解說]

  1. 訂單類別:
    'limit' 表示限價買賣,這意味著您在交易所上設置一個最高價格,以購買或最低價格,以出售。
    'market' 表示市場價買賣,這意味著您同意按照當前的市場價格買賣資產。
    'stop_limit' 表示停止限價買賣,這意味著您在交易所上設置一個停止價格,當市場價格達到該價格時,將按照您設置的限價價格買賣資產。
    'stop_market' 表示停止市場價買賣,這意味著您在交易所上設置一個停止價格,當市場價格達到該價格時,將按照當前的市場價格買賣資產。
    'post_only' 表示只能在沒有其他交易者接受您的價格時才能成交,如果價格被接受就不會立即成交。
    'ioc_limit' 表示立即成交或取消限價買賣,這意味著您在交易所上設置一個最高價格,以購買或最低價格,以出售,如果價格不能立即成交,則訂單將被取消。

  2. stop_limit、stop_market和limit與market的差別:
    'Stop_limit' 交易是在市場價達到觸發價之後,自動轉換為限價買賣的交易,例如,當BTC在7000美元時你可能希望買進,你可以設定停止價格為6950美元,限價價格為6850美元,如果市場價格達到6950美元時,你的交易就會自動轉換為限價價格為6850美元的買入交易。
    'Stop_market' 交易是在市場價達到觸發價之後,自動轉換為市場買賣的交易,例如,當BTC在7000美元時你可能希望賣出,你可以設定停止價格為7150美元,如果市場價格達到7150美元時,你的交易就會自動轉換為當時的市場價格賣出。

  3. post_only與limit的差別:
    'post_only' 表示只能在沒有其他交易者接受您的價格時才能成交,如果價格被接受就不會立即成交。這種類型的訂單是為了避免交易所的爆價而設計的,如果沒有其他交易者接受您的價格,那麼您的 'post_only' 訂單將不會立即成交,而是等待其他交易者接受您的價格。如果沒有其他交易者愿意接受您的價格,那麼您的訂單將會在訂單簿上停留,直到其他交易者接受您的價格為止。
    這種類型的訂單主要是為了避免交易所爆價,因為這種訂單只會在沒有其他交易者接受價格時才能成交,所以不會對市場造成很大的影響。

'post_only' 與 'limit' 並不完全相同。'limit' 訂單表示您希望以特定的價格買入或賣出,而 'post_only' 訂單除了表示您希望以特定的價格買入或賣出外,還表示如果您的價格不能立即成交,則訂單將不會被提交。
'limit' 訂單會立即在訂單簿上出現,如果沒有其他交易者願意接受你的價格,那麼你的訂單就會在訂單簿上等待,直到有人願意接受你的價格為止。 而 'post_only' 則是在沒有其他交易者願意接受你的價格時才會出現在訂單簿上。

  1. post_only與ioc_limit差別:
    'post_only' 和 'ioc_limit' 有一些相似之處,但它們之間有一些重要的區別。

'post_only' 表示只有在沒有其他交易者接受您的價格時才能成交。如果您的價格被接受,則訂單將不會立即成交。

'ioc_limit' 表示立即成交或取消限價買賣。也就是說,如果您的價格不能立即成交,則訂單將被取消。

簡而言之,'post_only' 訂單是為了避免交易所爆價而設計的,只會在沒有其他交易者接受您的價格時才能成交,而 'ioc_limit' 訂單則是為了確保訂單能夠立即成交而設計的,如果不能立即成交,訂單就會被取消。

開發日後程式所需的基礎架構

[Golang]

  1. HTTP Restful Server
  2. Call 3rd Restful API Tools
  3. HMAC-SHA256 use SecretKey, Base64 Encode, etc...

[VBA]

  1. Call HTTP Restful from localhost
  2. JSON Parser
  3. UI bind params

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.