𝗗𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝘁𝗶𝗮𝘁𝗶𝗻𝗴 𝗧𝗿𝗮𝗱𝗲𝘀 𝗶𝗻 𝗛𝗼𝗻𝗴 𝗞𝗼𝗻𝗴 𝗪𝗲𝗯𝗦𝗼𝗰𝗸𝗲𝘁 𝗙𝗲𝗲𝗱𝘀
റിയൽ-ടൈം മാർക്കറ്റ് ഡാറ്റ വളരെ വേഗത്തിൽ മാറിക്കൊണ്ടിരിക്കുന്ന ഒന്നാണ്. നിങ്ങൾ ഹോങ്കോങ് ഇക്വിറ്റി ട്രേഡുകൾ സ്ട്രീം ചെയ്യുമ്പോൾ, വിവിധ തരത്തിലുള്ള പ്രിന്റുകൾ കാണാൻ സാധിക്കും. എല്ലാ ട്രേഡുകളും ഒരേ കാര്യത്തെ പ്രതിനിധീകരിക്കുന്നില്ല. ചിലത് നിക്ഷേപകരുടെ ഓർഡറുകളാണ്. മറ്റുള്ളവ സിസ്റ്റം ഓട്ടോ-മാച്ചുകളോ (auto-matches) അല്ലെങ്കിൽ ഓഡ്-ലോട്ട് (odd-lot) ഇടപാടുകളോ ആണ്.
ഈ ട്രേഡുകളെ വേഗത്തിൽ തരംതിരിക്കേണ്ടതുണ്ട്.
The Problem
സാധാരണ ഡാറ്റാ ഫീൽഡുകൾ പലപ്പോഴും സഹായിക്കാറില്ല. ട്രേഡ് ടൈപ്പ് ഫീൽഡ് പലപ്പോഴും വിശ്വസനീയമല്ല. ഇത് പരിഹരിക്കാൻ, ഈ മൂന്ന് നിയമങ്ങൾ ഉപയോഗിക്കുക:
- വോളിയം പരിശോധന (Volume check): മിക്ക ഹോങ്കോങ് ഓഹരികളും 100 ഷെയറുകളുടെ ലോട്ടുകളായാണ് വ്യാപാരം ചെയ്യുന്നത്. 100 ഷെയറുകളിൽ താഴെയുള്ള ഏതൊരു ട്രേഡും ഒരു ഓഡ്-ലോട്ട് (odd lot) ആണ്.
- ടൈം ക്ലസ്റ്ററിംഗ് (Time clustering): ഓട്ടോ-മാച്ച്ഡ് ട്രേഡുകൾ വളരെ വേഗത്തിൽ സംഭവിക്കുന്നവയാണ്. മില്ലിസെക്കൻഡുകൾക്കുള്ളിൽ തന്നെ നിരവധി ഫില്ലുകൾ (fills) നിങ്ങൾക്ക് കാണാൻ സാധിക്കും. ഓഡ്-ലോട്ടുകൾ ഈ രീതി പിന്തുടരുന്നില്ല.
- കൗണ്ടർപാർട്ടി പരിശോധന (Counterparty check): വാങ്ങുന്നയാളെയും വിൽക്കുന്നയാളെയും ശ്രദ്ധിക്കുക. രണ്ടും SYS പോലുള്ള സിസ്റ്റം അക്കൗണ്ടുകൾ ആണെങ്കിൽ, അത് ഒരു ഓട്ടോ-മാച്ച് ആണ്.
Implementation
ഈ ലോജിക് നിങ്ങളുടെ ഡാറ്റാ സ്ട്രീമിൽ കോഡ് ചെയ്യാവുന്നതാണ്.
from websocket import create_connection
import json
API_TOKEN = 'your_api_token'
ws_url = f"wss://ws.alltick.co/stock?token={API_TOKEN}"
ws = create_connection(ws_url)
subscribe_msg = {
"action": "subscribe",
"symbol": "00700.HK",
"type": "transaction"
}
ws.send(json.dumps(subscribe_msg))
def check_auto_match(tick):
return tick.get('buyer') == 'SYS' and tick.get('seller') == 'SYS'
while True:
data = ws.recv()
tick = json.loads(data)
volume = tick.get('volume', 0)
if volume < 100:
tick['tag'] = 'odd_lot'
elif check_auto_match(tick):
tick['tag'] = 'auto_match'
else:
tick['tag'] = 'normal'
print(tick['time'], tick['price'], tick['volume'], tick['tag'])
ഈ ട്രേഡുകൾ തരംതിരിക്കുന്നത് യഥാർത്ഥ മാർക്കറ്റ് ചലനങ്ങൾ മനസ്സിലാക്കാൻ നിങ്ങളെ സഹായിക്കും.
ഓപ്ഷണൽ ലേണിംഗ് കമ്മ്യൂണിറ്റി: https://t.me/GyaanSetuAi