elective-stereophonic
elective-stereophonic
NXTcoinsco should be called Tradebots asset! - make money making tradebots singapore
Please login or register.

Login with username, password and session length
Advanced search  

News:

Latest Nxt Client: Nxt 1.11.15

Pages: 1 2 [3] 4 5  All

Author Topic: NXTcoinsco should be called Tradebots asset! - make money making tradebots  (Read 22162 times)

sparta_cuss

  • Sr. Member
  • ****
  • Karma: +31/-2
  • Offline Offline
  • Posts: 382
    • View Profile

I'm not sure any of this work counts, since you did not follow the Nxt pre-pre-announcement protocol. ;)
Logged
nxt: NXT-Z24T-YU6D-688W-EARDT
btc/xcp: 19ULeXarogu2rT4dhJN9vhztaorqDC3U7s

id10tothe9

  • Newbie
  • *
  • Karma: +0/-0
  • Offline Offline
  • Posts: 9
    • View Profile

James, with all this amazing productivity I wanted to ask you: HOW MANY PEOPLE ARE YOU? ;D
This is really inspiring me hehe, and probably you don't need a reminder, but don't forget to take care of your health ;)
Logged

id10tothe9

  • Newbie
  • *
  • Karma: +0/-0
  • Offline Offline
  • Posts: 9
    • View Profile

one question, is NXTcoinsco still going to be building other coins on top of NXT and the toolkit, or is it now just for the tradebots project (what I kinda understood from the edited OP)?
Logged

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

one question, is NXTcoinsco still going to be building other coins on top of NXT and the toolkit, or is it now just for the tradebots project (what I kinda understood from the edited OP)?
I will still do nodecoin and bannercoin as I have said that I would. Some day I will probably just make a NXTcoinsco development kit, but kind of waiting for Monetary System for that
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

I'm not sure any of this work counts, since you did not follow the Nxt pre-pre-announcement protocol. ;)
I didnt have time :)
It went from idea -> found picoc -> cram it into NXTservices -> debug three bugs -> make main return double -> verify input and output -> Hey that went really fast, like 4 hours. I amazed even myself yesterday :)
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

James, with all this amazing productivity I wanted to ask you: HOW MANY PEOPLE ARE YOU? ;D
This is really inspiring me hehe, and probably you don't need a reminder, but don't forget to take care of your health ;)
I talk to myself a lot, so I guess at least two people :)
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

Just finished up defining the input/output process for the tradebots. Unfortunately it is getting a bit complicated for all the aspiring language creators, but the good news is the picoTradebotLanguage, PTL should be relatively easy to write, if you know C

Here are the data types for PTL:

structN - N bytes
bit[n] - N bits
['u']char[V] - 8 bits
['u']short[V] - 16 bits
['u']int[V] - 32 bits
['u']long[V] - 64 bits
['u']float[V] - 32 bits
['u']double[V] - 64 bits

All except struct ant bit types support unsigned. Yes, even floating point! On output, an unsigned float/double type automatically gets fabs() applied to it. The "struct" type is just an arbitrary number of bytes that will be allocated for output. bit[n] means "bit" or "bit1", or "bit2", etc. bit2 would be two bits, bit13 would be thirteen bits. For output having bitfields doesnt make much sense, but when it is used as inputs, then it starts making much more sense, as 32 "bit" inputs would fit into a single uint32_t

Now all the other scalar types have a [V], so you can do int4, int13, double16, etc. double16 is a vector of 16 doubles
Unfortunately this syntax has different meanings for the suffix, eg. N bytes or n bits or V elements, but hopefully it wont cause too much confusion.

A tradebot would register an output type with a name and it is responsible for keeping this updated.
So for input, you can specify the output of any other tradebot's outputs and due to the nature of the data stream it will be useful to modify the inputs, eg. SMA, EMA, filters, etc. So I have a "conditioner" field that will allow you to specify how an input field is conditioned and made available to your tradebot. This will be easily extensible to add a large variety of different signal processing algos.

James
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

allwelder

  • Hero Member
  • *****
  • Karma: +196/-13
  • Offline Offline
  • Posts: 1867
  • NxtChina.org
    • View Profile
    • NxtChina.org

means will issue a new asset named Tradebots?
Logged
NxtChina |Weibo |Twitter Donation welcomed:NXT-APL9-66GU-K8LY-B3JJJ

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

means will issue a new asset named Tradebots?
NXTcoinsco is Tradebots
No way to rename and no time to deal with issuing new asset and swapping
So, if you want Tradebots asset, its just the same as NXTcoinsco 17571711292785902558
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

Well, that took longer than I expected, but had to essentially recreate most of MT4!

The reason is that after spending all that time making sure bots can use other bot's outputs as inputs and making arbitrary topology, the front line bots need input from, well, from other exchanges and InstantDEX orderbook. So, after not going crazy from all the possible price inversions due to the ability of InstantDEX to show any orderbook base/rel or rel/base. Meaning NXT/BTC or BTC/NXT. So at the lowest level, an orderbook needs to pick assetA and assetB and I just require assetA < assetB in its ID. For most contracts there is only one order, but toss in the NXT AE and it is NXT based, so it has BTC/NXT, but all the exchanges have NXT/BTC.

Add to this confusion, the user (tradebot) can request the orderbook in either orientation.

Anyway, I think I got it right, but too late to debug this sort of thing today, so it will have to be tomorow, when I should also be able to add the "action" function calls, eg. makeoffer, issue trades, etc.

All the tradebots are called whenever the top of the orderbook of any exchange changes. Also, once per minute timer.

The first thing a tradebot needs to do is call the initialization function:
int init_PTL(int *eventp,int *changedp,char *exchange,char *base,char *rel);

if exchange is not specified, all exchanges will be accepted, including a special one called "ALL", which is all exchanges including InstantDEX combined.
base is the first currency and rel is the second, so BTC/BTCD would be base = "BTCD" and rel = "BTC"

if init_PTL returns 0, it means it was not a match. If non-zero it was and all the globals are set.
event will currently be:
#define TRADEBOT_PRICECHANGE 1
#define TRADEBOT_NEWMINUTE 2
changed would be 1 if there was a pricechange, this is probably almost always going to be set, but I think there are some timer cases that could have no changes, needs some debugging

Here are the available global data:
Bid(n) nth bid in the orderbook
Bidvol(n) nth bid volume in the orderbook
Bidid(n) id of the nth buyer
Ask(n) nth ask in the orderbook
Ask(n) nth ask volume in the orderbook
Askid(n) id of the nth seller

I also calculate the bars for various timeframes: M1, M2, M3, M4, M5, M10, M15, M30 and H1
Maxbars tells the most bars possible, but it is quite possible that even though the bar is there it is empty especially if you dont have much data. Just check the BARI_FIRSTBID or BARI_FIRSTASK field, if it is zero, then no data for that bar

There are 16 fields in each bar, to access one, just go:
M1(pasti,bari) or M2(pasti,bari) or ... H1(pasti,bari)

pasti of 0 is the latest bar, pasti 1 is one bar in the past, etc. Now I recalculate all the bars to the second, so the bars are relative to the current second. Jdatetime has the time index in GMT from 1/1/2000

bari is the index into the 16 element bar and has the following fields:
#define BARI_FIRSTBID 0
#define BARI_FIRSTASK 1
#define BARI_LOWBID 2
#define BARI_HIGHASK 3
#define BARI_HIGHBID 4
#define BARI_LOWASK 5
#define BARI_LASTBID 6
#define BARI_LASTASK 7

#define BARI_ARBBID 8
#define BARI_ARBASK 9
#define BARI_MINBID 10
#define BARI_MAXASK 11
#define BARI_VIRTBID 10
#define BARI_VIRTASK 11
#define BARI_AVEBID 12
#define BARI_AVEASK 13
#define BARI_MEDIAN 14
#define BARI_AVEPRICE 15

Currently, the ARB and VIRT fields are not calculated.

So as you can see, PTL now is getting close to MT4 functionality, actually in many ways it has a lot more. Now I just need to debug all the new code and add the action functions.

James
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

coinomat

  • Hero Member
  • *****
  • Karma: +214/-18
  • Offline Offline
  • Posts: 1520
    • View Profile

Just a quick question
what the advantages does it have relative to trading through NXT API?
Logged
Time to go further

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

Just a quick question
what the advantages does it have relative to trading through NXT API?
You get access to the realtime InstantDEX orderbook and presumably the best execution prices. Also, to place bid/ask quote on NXT AE it costs 1 NXT, another 1 NXT to cancel. With InstantDEX no cost unless an order is filled. Also, InstantDEX is dynamically making orderbooks for all asset <-> asset trades, including where "asset" is NXT. NXT AE only supports trades based in NXT.

Now if you dont already have the data feeds setup and the signal processing algos, then those are significant advantages, not to mention the ability to be able to run a tradebot without having to deal with all the various blockchains directly. I intent to add function calls that allow some pretty cool functionality, basically the ability to programmatically invoke NXTservices functions within a tradebot.

Remember, I only started this tradebot language this past weekend and it is just Tuesday :)

James
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

coinomat

  • Hero Member
  • *****
  • Karma: +214/-18
  • Offline Offline
  • Posts: 1520
    • View Profile

Cool stuff :)
Is it possible to set limit orders through InstantDEX, or all the orders are market orders?
Just a quick question
what the advantages does it have relative to trading through NXT API?
You get access to the realtime InstantDEX orderbook and presumably the best execution prices. Also, to place bid/ask quote on NXT AE it costs 1 NXT, another 1 NXT to cancel. With InstantDEX no cost unless an order is filled. Also, InstantDEX is dynamically making orderbooks for all asset <-> asset trades, including where "asset" is NXT. NXT AE only supports trades based in NXT.

Now if you dont already have the data feeds setup and the signal processing algos, then those are significant advantages, not to mention the ability to be able to run a tradebot without having to deal with all the various blockchains directly. I intent to add function calls that allow some pretty cool functionality, basically the ability to programmatically invoke NXTservices functions within a tradebot.

Remember, I only started this tradebot language this past weekend and it is just Tuesday :)

James
Logged
Time to go further

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

Cool stuff :)
Is it possible to set limit orders through InstantDEX, or all the orders are market orders?
Just a quick question
what the advantages does it have relative to trading through NXT API?
You get access to the realtime InstantDEX orderbook and presumably the best execution prices. Also, to place bid/ask quote on NXT AE it costs 1 NXT, another 1 NXT to cancel. With InstantDEX no cost unless an order is filled. Also, InstantDEX is dynamically making orderbooks for all asset <-> asset trades, including where "asset" is NXT. NXT AE only supports trades based in NXT.

Now if you dont already have the data feeds setup and the signal processing algos, then those are significant advantages, not to mention the ability to be able to run a tradebot without having to deal with all the various blockchains directly. I intent to add function calls that allow some pretty cool functionality, basically the ability to programmatically invoke NXTservices functions within a tradebot.

Remember, I only started this tradebot language this past weekend and it is just Tuesday :)

James
I think you are misunderstanding a bit...
InstantDEX will be maintaining arbitrary orderbooks in realtime, but it will not be automatically matching orders. This is why I ended up duplicating MT4 functions this weekend!

I expect that each person will look at the orderbook they are interested in and then send a offer to the one with the best price. Now, the one that receives it must decide to accept it or not. Clearly in a high volume environment that InstantDEX will become, it is not practical to do this manually. So at first I was thinking of having just a simple, "Buy/Sell X amount at ave price of Y, but not worse than Z"

Then I ran into the issue of needing some basic scripting. It could be just hardcoded keywords, maybe some hard to use bitcoin forth type of thing, but I am simple C programmer so I look for C interpreter. I found picoc and it was fantastic. 4 hours is all it took to get proof of concept execution of "hello world" script. So, once I have C interpreter in my source base, now I can add any interpreter library function that directly runs any of my NXTservices code.

What this means is that all makeoffers will be processed by the tradebot!

So you can have any Turing complete complexity level script using C combined with all the data and library functions to decide to accept or reject the offer.
Since there is no actual binding bid/ask (other than NXT AE quotes), there really is no "market order"
I will of course make standard scripts for simple things like limit orders, stop loss, etc.
But the power of all this is that you can check the orderbook status on bter and cryptsy and NXT AE all in realtime the moment a tradeoffer is there and dynamically decide to accept or reject. Now your accept/reject rate will be recorded and published so if you have many quotes but low acceptance rate, then other traders will simply not bother to makeoffers and I think the tradebots will be able to get statistics on historical acceptance rates.

Basically my tradebots will be unlike anything ever seen in the automated trading universe (as far as I know). Crypto I am newbie 6 months ago. This trading stuff I am old pro and actually quite good at it :)

James
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

coinomat

  • Hero Member
  • *****
  • Karma: +214/-18
  • Offline Offline
  • Posts: 1520
    • View Profile

Yes maybe I don't quite get it still, now I understand better but not fully
So you can only be a liquidity taker through InstantDEX, by picking orders from order book. You cannot provide liquidity, that is add your order to orderbook. is it right?
 :-[
Cool stuff :)
Is it possible to set limit orders through InstantDEX, or all the orders are market orders?
Just a quick question
what the advantages does it have relative to trading through NXT API?
You get access to the realtime InstantDEX orderbook and presumably the best execution prices. Also, to place bid/ask quote on NXT AE it costs 1 NXT, another 1 NXT to cancel. With InstantDEX no cost unless an order is filled. Also, InstantDEX is dynamically making orderbooks for all asset <-> asset trades, including where "asset" is NXT. NXT AE only supports trades based in NXT.

Now if you dont already have the data feeds setup and the signal processing algos, then those are significant advantages, not to mention the ability to be able to run a tradebot without having to deal with all the various blockchains directly. I intent to add function calls that allow some pretty cool functionality, basically the ability to programmatically invoke NXTservices functions within a tradebot.

Remember, I only started this tradebot language this past weekend and it is just Tuesday :)

James
I think you are misunderstanding a bit...
InstantDEX will be maintaining arbitrary orderbooks in realtime, but it will not be automatically matching orders. This is why I ended up duplicating MT4 functions this weekend!

I expect that each person will look at the orderbook they are interested in and then send a offer to the one with the best price. Now, the one that receives it must decide to accept it or not. Clearly in a high volume environment that InstantDEX will become, it is not practical to do this manually. So at first I was thinking of having just a simple, "Buy/Sell X amount at ave price of Y, but not worse than Z"

Then I ran into the issue of needing some basic scripting. It could be just hardcoded keywords, maybe some hard to use bitcoin forth type of thing, but I am simple C programmer so I look for C interpreter. I found picoc and it was fantastic. 4 hours is all it took to get proof of concept execution of "hello world" script. So, once I have C interpreter in my source base, now I can add any interpreter library function that directly runs any of my NXTservices code.

What this means is that all makeoffers will be processed by the tradebot!

So you can have any Turing complete complexity level script using C combined with all the data and library functions to decide to accept or reject the offer.
Since there is no actual binding bid/ask (other than NXT AE quotes), there really is no "market order"
I will of course make standard scripts for simple things like limit orders, stop loss, etc.
But the power of all this is that you can check the orderbook status on bter and cryptsy and NXT AE all in realtime the moment a tradeoffer is there and dynamically decide to accept or reject. Now your accept/reject rate will be recorded and published so if you have many quotes but low acceptance rate, then other traders will simply not bother to makeoffers and I think the tradebots will be able to get statistics on historical acceptance rates.

Basically my tradebots will be unlike anything ever seen in the automated trading universe (as far as I know). Crypto I am newbie 6 months ago. This trading stuff I am old pro and actually quite good at it :)

James
Logged
Time to go further

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

Yes maybe I don't quite get it still, now I understand better but not fully
So you can only be a liquidity taker through InstantDEX, by picking orders from order book. You cannot provide liquidity, that is add your order to orderbook. is it right?
 :-[
Cool stuff :)
Is it possible to set limit orders through InstantDEX, or all the orders are market orders?
Just a quick question
what the advantages does it have relative to trading through NXT API?
You get access to the realtime InstantDEX orderbook and presumably the best execution prices. Also, to place bid/ask quote on NXT AE it costs 1 NXT, another 1 NXT to cancel. With InstantDEX no cost unless an order is filled. Also, InstantDEX is dynamically making orderbooks for all asset <-> asset trades, including where "asset" is NXT. NXT AE only supports trades based in NXT.

Now if you dont already have the data feeds setup and the signal processing algos, then those are significant advantages, not to mention the ability to be able to run a tradebot without having to deal with all the various blockchains directly. I intent to add function calls that allow some pretty cool functionality, basically the ability to programmatically invoke NXTservices functions within a tradebot.

Remember, I only started this tradebot language this past weekend and it is just Tuesday :)

James
I think you are misunderstanding a bit...
InstantDEX will be maintaining arbitrary orderbooks in realtime, but it will not be automatically matching orders. This is why I ended up duplicating MT4 functions this weekend!

I expect that each person will look at the orderbook they are interested in and then send a offer to the one with the best price. Now, the one that receives it must decide to accept it or not. Clearly in a high volume environment that InstantDEX will become, it is not practical to do this manually. So at first I was thinking of having just a simple, "Buy/Sell X amount at ave price of Y, but not worse than Z"

Then I ran into the issue of needing some basic scripting. It could be just hardcoded keywords, maybe some hard to use bitcoin forth type of thing, but I am simple C programmer so I look for C interpreter. I found picoc and it was fantastic. 4 hours is all it took to get proof of concept execution of "hello world" script. So, once I have C interpreter in my source base, now I can add any interpreter library function that directly runs any of my NXTservices code.

What this means is that all makeoffers will be processed by the tradebot!

So you can have any Turing complete complexity level script using C combined with all the data and library functions to decide to accept or reject the offer.
Since there is no actual binding bid/ask (other than NXT AE quotes), there really is no "market order"
I will of course make standard scripts for simple things like limit orders, stop loss, etc.
But the power of all this is that you can check the orderbook status on bter and cryptsy and NXT AE all in realtime the moment a tradeoffer is there and dynamically decide to accept or reject. Now your accept/reject rate will be recorded and published so if you have many quotes but low acceptance rate, then other traders will simply not bother to makeoffers and I think the tradebots will be able to get statistics on historical acceptance rates.

Basically my tradebots will be unlike anything ever seen in the automated trading universe (as far as I know). Crypto I am newbie 6 months ago. This trading stuff I am old pro and actually quite good at it :)

James
You can do both sides.
just place both bid and asks on the orderbook and always accept any offer
then you are making liquidity available
it is all programmable in C
no learning curve for anybody that knows C and premade tradebots for the simpler things
It is Turing complete! That means anything can be implemented :)
In C!
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

coinomat

  • Hero Member
  • *****
  • Karma: +214/-18
  • Offline Offline
  • Posts: 1520
    • View Profile

seems to be perfect, especially when you don't have to pay the trading fee if you use DEX.
waiting for the launch :)

Yes maybe I don't quite get it still, now I understand better but not fully
So you can only be a liquidity taker through InstantDEX, by picking orders from order book. You cannot provide liquidity, that is add your order to orderbook. is it right?
 :-[
Cool stuff :)
Is it possible to set limit orders through InstantDEX, or all the orders are market orders?
Just a quick question
what the advantages does it have relative to trading through NXT API?
You get access to the realtime InstantDEX orderbook and presumably the best execution prices. Also, to place bid/ask quote on NXT AE it costs 1 NXT, another 1 NXT to cancel. With InstantDEX no cost unless an order is filled. Also, InstantDEX is dynamically making orderbooks for all asset <-> asset trades, including where "asset" is NXT. NXT AE only supports trades based in NXT.

Now if you dont already have the data feeds setup and the signal processing algos, then those are significant advantages, not to mention the ability to be able to run a tradebot without having to deal with all the various blockchains directly. I intent to add function calls that allow some pretty cool functionality, basically the ability to programmatically invoke NXTservices functions within a tradebot.

Remember, I only started this tradebot language this past weekend and it is just Tuesday :)

James
I think you are misunderstanding a bit...
InstantDEX will be maintaining arbitrary orderbooks in realtime, but it will not be automatically matching orders. This is why I ended up duplicating MT4 functions this weekend!

I expect that each person will look at the orderbook they are interested in and then send a offer to the one with the best price. Now, the one that receives it must decide to accept it or not. Clearly in a high volume environment that InstantDEX will become, it is not practical to do this manually. So at first I was thinking of having just a simple, "Buy/Sell X amount at ave price of Y, but not worse than Z"

Then I ran into the issue of needing some basic scripting. It could be just hardcoded keywords, maybe some hard to use bitcoin forth type of thing, but I am simple C programmer so I look for C interpreter. I found picoc and it was fantastic. 4 hours is all it took to get proof of concept execution of "hello world" script. So, once I have C interpreter in my source base, now I can add any interpreter library function that directly runs any of my NXTservices code.

What this means is that all makeoffers will be processed by the tradebot!

So you can have any Turing complete complexity level script using C combined with all the data and library functions to decide to accept or reject the offer.
Since there is no actual binding bid/ask (other than NXT AE quotes), there really is no "market order"
I will of course make standard scripts for simple things like limit orders, stop loss, etc.
But the power of all this is that you can check the orderbook status on bter and cryptsy and NXT AE all in realtime the moment a tradeoffer is there and dynamically decide to accept or reject. Now your accept/reject rate will be recorded and published so if you have many quotes but low acceptance rate, then other traders will simply not bother to makeoffers and I think the tradebots will be able to get statistics on historical acceptance rates.

Basically my tradebots will be unlike anything ever seen in the automated trading universe (as far as I know). Crypto I am newbie 6 months ago. This trading stuff I am old pro and actually quite good at it :)

James
You can do both sides.
just place both bid and asks on the orderbook and always accept any offer
then you are making liquidity available
it is all programmable in C
no learning curve for anybody that knows C and premade tradebots for the simpler things
It is Turing complete! That means anything can be implemented :)
In C!
Logged
Time to go further

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

seems to be perfect, especially when you don't have to pay the trading fee if you use DEX.
waiting for the launch :)

Yes maybe I don't quite get it still, now I understand better but not fully
So you can only be a liquidity taker through InstantDEX, by picking orders from order book. You cannot provide liquidity, that is add your order to orderbook. is it right?
 :-[
Cool stuff :)
Is it possible to set limit orders through InstantDEX, or all the orders are market orders?
Just a quick question
what the advantages does it have relative to trading through NXT API?
You get access to the realtime InstantDEX orderbook and presumably the best execution prices. Also, to place bid/ask quote on NXT AE it costs 1 NXT, another 1 NXT to cancel. With InstantDEX no cost unless an order is filled. Also, InstantDEX is dynamically making orderbooks for all asset <-> asset trades, including where "asset" is NXT. NXT AE only supports trades based in NXT.

Now if you dont already have the data feeds setup and the signal processing algos, then those are significant advantages, not to mention the ability to be able to run a tradebot without having to deal with all the various blockchains directly. I intent to add function calls that allow some pretty cool functionality, basically the ability to programmatically invoke NXTservices functions within a tradebot.

Remember, I only started this tradebot language this past weekend and it is just Tuesday :)

James
I think you are misunderstanding a bit...
InstantDEX will be maintaining arbitrary orderbooks in realtime, but it will not be automatically matching orders. This is why I ended up duplicating MT4 functions this weekend!

I expect that each person will look at the orderbook they are interested in and then send a offer to the one with the best price. Now, the one that receives it must decide to accept it or not. Clearly in a high volume environment that InstantDEX will become, it is not practical to do this manually. So at first I was thinking of having just a simple, "Buy/Sell X amount at ave price of Y, but not worse than Z"

Then I ran into the issue of needing some basic scripting. It could be just hardcoded keywords, maybe some hard to use bitcoin forth type of thing, but I am simple C programmer so I look for C interpreter. I found picoc and it was fantastic. 4 hours is all it took to get proof of concept execution of "hello world" script. So, once I have C interpreter in my source base, now I can add any interpreter library function that directly runs any of my NXTservices code.

What this means is that all makeoffers will be processed by the tradebot!

So you can have any Turing complete complexity level script using C combined with all the data and library functions to decide to accept or reject the offer.
Since there is no actual binding bid/ask (other than NXT AE quotes), there really is no "market order"
I will of course make standard scripts for simple things like limit orders, stop loss, etc.
But the power of all this is that you can check the orderbook status on bter and cryptsy and NXT AE all in realtime the moment a tradeoffer is there and dynamically decide to accept or reject. Now your accept/reject rate will be recorded and published so if you have many quotes but low acceptance rate, then other traders will simply not bother to makeoffers and I think the tradebots will be able to get statistics on historical acceptance rates.

Basically my tradebots will be unlike anything ever seen in the automated trading universe (as far as I know). Crypto I am newbie 6 months ago. This trading stuff I am old pro and actually quite good at it :)

James
You can do both sides.
just place both bid and asks on the orderbook and always accept any offer
then you are making liquidity available
it is all programmable in C
no learning curve for anybody that knows C and premade tradebots for the simpler things
It is Turing complete! That means anything can be implemented :)
In C!
There is an InstantDEX fee of 1/1024 of transactions completed to each side of trade
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

After literally hundreds of test/debug revisions, the first PTL tradebot that has access to realtime exchange data:

Here is the tradebot JSON:
{'lang':'ptl','botname':'testbot3','outputs':[{'name':'test','type':'double'}],'picoc':

'double main(int argc,char **argv)
{
    int ev,ch;
    if ( init_PTL(&ev,&ch,0,''BTCD'',''BTC'') == 0 )
        return(0.);
    printf(''FROM TRADEBOT %s %s %s: highbid vol %.6f %.8f || %.8f vol %.6f lowask\n'',Exchange,Base,Rel,Bidvol(0),Bid(0), Ask(0),Askvol(0));

    return(Bid(0));
}'

After I submit it, it returns the result of the "compilation":
json_handler returns.({"metalevel":0,"numinputs":0,"numoutputs":1,"IOsize":"8","codelen":"277"})

Now it is active in the system and it gets called for each price change. It is looking for BTCD/BTC trades and it will simply print the top of the orderbook. The lines with blue exchange are the new quote coming in and within a second or two, the TRADEBOT returns the right values.

     cryptsy Jul_29_14 08:00:05 PM  BTCD/BTC   0.00122272 0.00124613
FROM TRADEBOT cryptsy BTCD BTC: highbid vol 117.000000 0.00122272 || 0.00124613 vol 95.000000 lowask
     cryptsy Jul_29_14 08:00:11 PM  BTCD/BTC   0.00122273 0.00124613
FROM TRADEBOT cryptsy BTCD BTC: highbid vol 21.500000 0.00122273 || 0.00124613 vol 95.000000 lowask

So, still some cases to make sure it isnt flipped, but what this shows is that I am getting the data from the exchanges and making it available to the the picoc script inside the script, which means now scripts can look at the orderbooks and all the various timeframe bars to make decisions on what to do.

So, a bit more debugging and then adding action functions so the tradebots can do more than printouts and return values. For those of you not familiar with what this is all about, http://www.metatrader4.com/ shows a similar system for forex, but that is only for users of a particular broker. With what I am making anybody can run tradebots that are making decisions from external API data, blockchain data, etc.

I am pretty sure that there is no other system like this and the rate I code, I doubt anybody will be able to catchup :)
So, I plan to make InstantDEX the most powerful automated trading platform in the decentralized arena

James
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

I have to take two weeks off from tradebots coding

James
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer
Pages: 1 2 [3] 4 5  All
 

elective-stereophonic
elective-stereophonic
assembly
assembly