Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. global.Promise = require('bluebird');
  2. const FTXRest = require('./');
  3. const FTXWs = require('ftx-api-ws');
  4. const now = require('performance-now');
  5. const BitMEXClient = require('./indexBitmex');
  6. var FTXbidPrice = 0;
  7.  
  8. var FTXaskPrice = 0;
  9.  
  10. const ftxws = new FTXWs({
  11. key: "3kLzV-WdA0y2tDInH9PA9oCmcbJG7KolLIZ75DFg",
  12. secret: "dSO5vqNoNCMI_-OsP5rMGrgOnGfU2DdYOR0fNPls",
  13. subaccount: "btcarb"
  14. });
  15.  
  16. var FTX_KEY = "3kLzV-WdA0y2tDInH9PA9oCmcbJG7KolLIZ75DFg";
  17. var FTX_SECRET = "dSO5vqNoNCMI_-OsP5rMGrgOnGfU2DdYOR0fNPls";
  18. var FTX_SUBACCOUNT = "btcarb";
  19.  
  20. const ftx = new FTXRest({
  21. key: "3kLzV-WdA0y2tDInH9PA9oCmcbJG7KolLIZ75DFg",
  22. secret: "dSO5vqNoNCMI_-OsP5rMGrgOnGfU2DdYOR0fNPls",
  23. subaccount: "btcarb"
  24. });
  25.  
  26. const bitmex = new BitMEXClient({
  27. testnet: false,
  28. apiKeyID: "0nMEd5ag0emj5eBLSe8pNtWg",
  29. apiKeySecret: "uLACu8ZZc7gYiDAOBx60yCbsglRMLlbqGwE6vsY4UValF_7Y",
  30. maxTableLen: 100,
  31. });
  32.  
  33. var api = new API({key:"3kLzV-WdA0y2tDInH9PA9oCmcbJG7KolLIZ75DF", secret:"dSO5vqNoNCMI_-OsP5rMGrgOnGfU2DdYOR0fNPls", subaccount:"btcarb"});
  34.  
  35. import API from './api';
  36. import FIXParser, {
  37. Field,
  38. Fields,
  39. Messages,
  40. Side,
  41. OrderTypes,
  42. HandlInst,
  43. TimeInForce,
  44. EncryptMethod
  45. } from './fixparser/fixparser.js';
  46.  
  47. api.ftxFix.connect();
  48. const sleep = ms => new Promise(r => setTimeout(r, ms));
  49. sleep(5000);
  50.  
  51. bitmex.on('error', console.error);
  52. bitmex.on('open', () => console.log('Connection opened.'));
  53. bitmex.on('close', () => console.log('Connection closed.'));
  54. bitmex.on('initialize', () => console.log('Client initialized, data is flowing.'));
  55.  
  56. bitmex.addStream('XBTUSD', 'trade', data => {
  57. try {
  58. for (let t = data.length - 1; t >= 0; t--) {
  59.  
  60. if(data[t].size >= 20000 && api.ftxFix.connected == true)
  61. {
  62. for(var i = 0; i<50; i++)
  63. {
  64. sendOrderFIX("sell", "BTC-PERP", FTXaskPrice+100, 0.01, false, true);
  65. sendOrderFIX("buy", "BTC-PERP", FTXbidPrice-100, 0.01, false, true);
  66. }
  67. }
  68. else if ( api.ftxFix.connected == false)
  69. {
  70. // api.ftxFix.connect();
  71. }
  72. }
  73. } catch (e) {
  74.  
  75. console.error('trade ' + e);
  76. }
  77. });
  78.  
  79.  
  80. async function WSstart() {
  81. await ftxws.connect();
  82. ftxws.subscribe('ticker', 'BTC-PERP');
  83. ftxws.on('BTC-PERP::ticker', function(e) {
  84. try {
  85. if (e.bidSize < 4) {
  86. FTXbidPrice = e.bid - 1;
  87. } else {
  88. FTXbidPrice = e.bid;
  89. }
  90. if (e.askSize < 4) {
  91. FTXaskPrice = e.ask + 1;
  92. } else {
  93. FTXaskPrice = e.ask;
  94. }
  95. } catch (e) {
  96. console.error('BTC-PERP::ticker ' + e);
  97. }
  98. });
  99.  
  100.  
  101. }
  102.  
  103. WSstart();
  104.  
  105.  
  106.  
  107. async function sendOrderFIX(side, market, price, size, postOnly, ioc) {
  108. try {
  109. const start = now();
  110. const result = await api.ftxFix.placeOrder(side, market, price, size, postOnly, ioc);
  111. const end = now();
  112. console.log("SentOrderFIX took", (end - start).toFixed(5));
  113. } catch (err) {
  114. console.log('sendOrderFIX ', err);
  115. }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement