What is fiscript.io?

What is fiscript.io?

Dec 23, 2020

fiscript.io is a platform where users can deploy JavaScript functions to run analysis or execute trades on their behalf. Using only two type of functions, namely, 'trade' and 'task', the following will be possible:

💰 Access to multiple exchanges and every single currency symbol.

📆 Back-test scripts with real historical-data (see demo).

💪 Train parameters of a script with genetic algorithm training.

💹 Real-time trading with test and production portfolios

🔦 Run one-time tasks to analyze the market and find investment opportunities (see demo).

Trade Functions

The 'trade' function contains the logic and rules for order execution and may be designed to run as a fully autonomous trading bot or execute a single trade and exit. After connecting an exchange account to fiscript.io, choosing a symbol to trade, and deploying a 'trade' function, the platform will ensure that the function wakes up and runs every predetermined time interval until the user stops the execution or the function exits on its own. Deployment of a function that trades a user's real assets is called a production deployment.

For testing purposes, a 'trade' function may be deployed as a dry-run with a test/mock-up portfolio. It's main purpose is to test new ideas and functions with real symbol prices and build confidence before a production deployment. A dry-run executes the same way as a production deployment and requires no code changes.

Using the same function, a back-test can also be performed to determine the profitability of a function based on historical pride data. The data used to execute a back-test is one-minute interval candlesticks on any symbol the exchange allows trading for.

For functions that contain configurable parameters, fiscript.io's parameter optimization with genetic algorithm feature may be utilized. The optimization feature uses back-test pride data to train the parameters of function to maximize profitability. As an example, if a function tracks a moving average and executes a trade when the price falls below a certain percentage of the average, using back-test data, the optimizer can determine what percentage value is most profitable. Then, a dry-run can be deployed with the trained parameters to continue to test the performance. Similar to dry-runs and back-testing, no code change is required and the feature may be run purely from the web app.

Task Functions

The 'task' function, unlike 'trade' functions, are meant for one-time executions. With access to the list of symbols the exchange offers and one-minute interval candlesticks as recent as five minutes, 'task' functions may be designed to run some sort of analysis of the market for research/investment purposes.

Example Scenarios

Problem: You are interested in building a trading bot that buys and sells on your behalf.
Solution: Design an algorithm based on the ideas you have. As you are building the 'trade' function, execute back-tests to debug and measure. Then, you may run parameter training if the function contains configuration parameters. You may also deploy a dry-run and continue to measure for some time. Finally, when you are confident, deploy it officially with a connected exchange and monitor the state and logs of the function as it continues to run.

Problem: For the most part you make manual trades but the features of the exchange you are using are not sufficient for your needs, ex: you want to sell 3 BTCUSD based on a sell trail or stop loss, a feature your exchange does not provide.
Solution: Write a 'trade' function that executes a sell trade based on the requirements. The function wakes up every minute with the current price of BTCUSD and terminates when the sell trade is made.

Problem: You want to analyze the state of the market or a specific symbol for research or before an investment is made, ex: acquiring the top 10 symbols whose price is the lowest relative to a 90-day moving average.
Solution: Write and run a one-time 'task' function that provides access to the list of symbols and one-minutes candlesticks with the required logic to calculate the moving average for the desired symbols, sort the list relative to the current moving average value and price, and print the final output.

Current Progress

You may track our progress of the development of fiscript.io in the Timeline and Goals post. As we finish features, we will release them exclusively for members to collect feedback.

Demo - 'Task 'function for market analysis (over and under valued assets)

As an example, to find an investment opportunity, run the 'task' function which queries the candlesticks of every 'USDT' symbol for the past 200 days, calculates the moving average (90) of the symbols, and prints out the most under and over valued symbols.

Demo - 'Trade' function, back-test example

The demo 'trade' function buys when the asset is below 10% of the highest price, and sells when the price is 10% above the bought price.

👑 Become a member to get exclusive early access to every feature, for free, forever and join the decision-making process by participating in private discussions and polls.

Enjoy this post?

Buy goodarchitect a coffee

More from goodarchitect