-
Here is my take on bot blueprint!!
It has quite a lot of inner works and I intend on adding more later on. Unfortunately I cannot upload screenshots of the bot… Will add them later!
Read the full script file carefully to understand what happens and why, I have written lots of comments to help with that.
Features:
- Ease-of-Use – All trade commands have default values so no matter what skill-level you are, you can easily start using this blueprint! If you want to skip/use default input values of any trading commands, simply give it a nil as input.
- Customizable “events” – Whether an order is open, filled, partially filled of cancelled, there is a built-in “even” function that fires accordingly. These functions are empty at the moment and be customized to update custom stats or to run any other actions you need.
- Chart Plots – Depending if you are running a backtest in the editor or a live bot, the plots done by bot are not forgotten; they are transformed into log messages when running a live bot and plotted normally in editor backtests!
- “You cannot exit more than you have” – The exit functions will check your position size before putting through the exit orders. Consider it as “automatic reduce-only”.
Missing features:
- Built-in inputs
- Wallet checks
- TP and SL systems
- Proper custom reports and useful stats
Example of use (also included at the end of the script):
-- init/load our 'testBot' local testBot = bot('testBot') -- prices and simple moving average with plotting local c = ClosePrices() local sma = SMA(c, 50) testBot.PlotLine(0, 'sma', sma) -- some simple strategy to control how bot trades if CrossOver(c, sma) then -- enable long and disable short entries testBot.EnableLongs() testBot.DisableShorts() -- exit open short position testBot.ExitShort() elseif CrossUnder(c, sma) then -- enable short and disable long entries testBot.DisableLongs() testBot.EnableShorts() -- exit open long position testBot.ExitLong() end -- run the inner works of the bot testBot.Run() -- just endlessly entry longs and shorts when allowed testBot.GoLong() testBot.GoShort() -- save bot info for next update testBot.SaveBot()
Another example:
-- init/load our 'testBot' local testBot = bot('testBot') -- prices and simple moving average with plotting local c = ClosePrices() local sma = SMA(c, 50) testBot.PlotLine(0, 'sma', sma) -- some simple strategy to control how bot trades if CrossOver(c, sma) then -- entry long testBot.GoLong() -- exit open short position testBot.ExitShort() elseif CrossUnder(c, sma) then -- entry short testBot.GoShort() -- exit open long position testBot.ExitLong() end -- run the inner works of the bot testBot.Run() -- save bot info for next update testBot.SaveBot()
Inspired by romdisc’s Blueprint of Trading Bot.