Ir al contenido
← Todos los ejemplos

Ejemplo 19

One chart per symbol

make sure there is a chart for each symbol of a watch list, at

Categoría
Espacio de trabajo: lee o cambia gráficos y paneles
Permisos
workspace.readworkspace.write
Antes de ejecutarlo
a terminal window
Qué hace
CHANGES YOUR WORKSPACE — opens one chart panel for each
Cómo ejecutarlo
in TTT, open the T0 Editor, open this file, grant workspace.read
Lenguaje
>=0.1.1, <0.2.0
Host
>=0.1.3, <0.2.0
Necesita
workspace >=0.1.2, <0.2.0

Código

// Purpose: make sure there is a chart for each symbol of a watch list, at
// one timeframe, opening only the ones that are missing. Running it twice
// changes nothing the second time.
// Category: workspace
// Permissions: workspace.read, workspace.write
// Preconditions: a terminal window
// Side effects: CHANGES YOUR WORKSPACE — opens one chart panel for each
// listed symbol that the terminal offers and that has no chart yet.
// Run: in TTT, open the T0 Editor, open this file, grant workspace.read
// and workspace.write, Run. Edit `watch` and `timeframe` to taste.

lang ">=0.1.1, <0.2.0";
host "ttt" ">=0.1.3, <0.2.0";
requires "workspace" ">=0.1.2, <0.2.0";
import std.list;

fn main() -> Result<Unit, Error> {
    let watch = ["BTCUSDT", "ETHUSDT", "SOLUSDT"];
    let timeframe = "1h";
    let offered = workspace.symbols();

    for symbol in watch {
        if !list.contains(offered, symbol) {
            print(symbol + ": not offered by this terminal, skipped");
        } else {
            let mut open = false;
            for c in workspace.charts() {
                if c.symbol == symbol {
                    open = true;
                }
            }
            if open {
                print(symbol + ": already has a chart");
            } else {
                let opened = workspace.open_chart(symbol, timeframe)?;
                print(symbol + ": opened " + opened.timeframe);
            }
        }
    }
    print(to_string(workspace.charts().len()) + " chart(s) open now");
    return Ok(());
}