brighter-trading/markdown/BrighterTrades.md

5.7 KiB

BrighterTreades:init()

    @startuml
        !theme vibrant
        start
            :Create Exchanges;
            :Create Cache;
            :Create Configuration;
            :Create Signals;
            :Create Candles;
            :Create Indicators;
            :Create Trades;
            :Create Strategies;
            :Create Backtester;
        stop
    @enduml

connect_user_to_exchange():

    @startuml
        !theme vibrant
        start
            if (Exchange Connected?) then (true)
            :Return True;
            stop
            else (False)
            :connect_exchange();
            if (Success?) then (true)
            :Return True;
            stop
            else (False)
            :Return False;
            stop
    @enduml

get_js_init_data():

    @startuml
        !theme vibrant
        start
            :Get_user_specific_data();
            :Get_application_data();
            :Return data;
            stop
    @enduml

get_rendered_data()

    @startuml
        !theme vibrant
        start
            :get_application_data();
            :format_data();
            :Return data; 
        stop
    @enduml

received_cdata()

    @startuml
        !theme vibrant
        start
            if (First candle?) then (yes)
                :set_first_candle();
            elseif (Duplicate?) then (yes)
                :Return None;
                stop
            else (no)
            endif
            :set_new_candle();
            :update_indicators();
            :update_signals();
            :update_trades();
            :update_strategies();
            :format_return_data();
            :Return updates();
        stop
    @enduml

received_new_signal(data)

    @startuml
        start
        if (Validate input) then (error)
            :return error;
            stop
        else (valid)
        :Create new signal;
        :save signal;
        :return input for chaining;
        stop
    @enduml

received_new_strategy(data)

    @startuml
        start
        if (Validate input) then (error)
            :return error;
            stop
        else (valid)
        :Create new strategy;
        :save strategy;
        :return input for chaining;
        stop
    @enduml

delete_strategy(name)

    @startuml
    start
        :delete from cache;
        :delete from storage;
        :return;
    stop
    @enduml

delete_signal(name)

    @startuml
    start
        :delete from cache;
        :delete from storage;
        :return;
    stop
    @enduml

get_signals()

    @startuml
    start
        :get_signals();
        :return signals;
    stop
    @enduml

get_strategies()

    @startuml
    start
        :get_strategies();
        :return strategies;
    stop
    @enduml

config_exchange()

    @startuml
    start
        :connect exchange();
        if (success?) then (no)
            :return False;
        else (yes)
            :update_API_keys();
            :return True;
            stop
        endif
    stop
    @enduml

close_trade()

    @startuml
    start
        :delete from cache;
        :delete from storage;
        :return;
    stop
    @enduml

received_new_trade()

    @startuml
    start
        :Validate_data();
        :Create Trade;
        if (result?) then (error)
        :log error;
        :Return None;
        stop
        else (success)
        :Save Trade;
        :Return trade;
    stop
    @enduml

get_trades()

    @startuml
    start
        :get_trades();
        :return trades;
    stop
    @enduml

adjust_setting()

    
    @startuml
    !pragma useVerticalIf on
    start
        if (setting?) then (interval)
            :set_chart_view(interval);
            
        elseif (setting?) then (trading_pair)
            :set_chart_view(trading_pair);
            
        elseif (setting?) then (exchange_name)
            :set_chart_view(exchange_name);
            
        elseif (setting?) then (toggle_indicator)
            :toggle_indicator();
            
        elseif (setting?) then (edit_indicator)
            :edit_indicator();
            
        elseif (setting?) then (new_indicator)
            :new_indicator();
            
        else
            :Log error;
        endif
        :Save changes;
        :reload price data;
        :return;
        stop
    @enduml

process_incoming_message()

    @startuml
        start
            if (msg_type) then (candle_data)
                :received_cdata();
            elseif (msg_type) then (delete_signal)
            :delete_signal();
            elseif (msg_type) then (delete_strategy)
            :delete_strategy();
            elseif (msg_type) then (close_trade)
            :close_trade();
            elseif (msg_type) then (new_signal)
            :received_new_signal();
            elseif (msg_type) then (new_strategy)
            :received_new_strategy();
            elseif (msg_type) then (new_trade)
            :received_new_trade();
            elseif (msg_type) then (config_exchange)
            :config_exchange();
            endif
            if (msg_type) then (request)
                if (msg_data) then (signals)
                    :get_signals();
                elseif (msg_data) then (strategies)
                    :get_strategies();
                elseif (msg_data) then (trades)
                    :get_trades();
                else (unknown)
                    :log error;
                endif
            endif

        stop    
    @enduml