TG: haradkou_sdet
Помогаю с автоматизацией и нагрузкой
The Financial Information eXchange (FIX®) - протокол передачи финансовых данный для трейдинговых терминалов
Fix 1.x - 1994 год. Большое распространение получил в 2006
MOEX?
NYSE
The Financial Information eXchange (FIX®) - протокол передачи финансовых данный для трейдинговых терминалов
8=FIX.4.2
9=118
35=D
49=ONIXS
56=CME
34=2
52=20240528-09:20:52.111
11=983532-3
21=1
38=100
55=NVDA
40=1
54=1
60=20240528-09:20:52.004
10=0178=FIX.4.29=11835=D49=ONIXS56=CME34=252=20240528-09:20:52.11111=983532-321=138=10055=NVDA40=154=160=20240528-09:20:52.00410=017D)F)8)c)AD)AE)библиотек нет
Надо работать с голым TLS.
Можно написать на GoLang extension
* надо знать GoLang
стоимость абстракций ч2
стоимость абстракций Ч2
стоимость абстракций Ч1
// filename: fixapi.mjs
import { Socket } from 'node:net'
const credentials = {
username: 'test-user',
password: 'sample',
}
const connectionUrl = `tcp+ssl://staging.com:6120`
const connection = new Socket();
connection.on('connect', () => {
console.log('connected to fixAPI')
connection.write(/** 8=FIX.4.4 ..... */) // handshake // string or Buffer!!!
})
connection.on('data', (data) => {
const message = data.toString('utf8') // Buffer!!!
console.log('message:', message)
})
connection.on('close', () => { console.log('closed') })
connection.connect(connectionUrl, () => {
console.log('connected & listenging', connectionUrl)
})
// filename: fix-codec.mjs
export class FixMessageDecoder {
encode(str) {
const buf = Buffer.alloc(/** args */)
// implementation
return buf // Buffer
}
}
export class FixMessageEncoder {
decode(buf) { // Buffer
// implementation
return {} // parsed message
}
}// filename: fix-coordinator.mjs
import { Worker } from 'node:worker_threads'
const THREADS = os.cpus().length || '10'
for (let i = 0; i < THREADS; i++) {
const worker = new Worker('fixapi.mjs');
worker.on('data', (result) => {
results.push(result)
worker.close()
})
}