LogoLogo
Back to HaasOnline.comSwitch to Trade Platform
3.x
3.x
  • Welcome
  • Getting Started
    • Using Local API Server
    • Authentication
    • Response
      • Error Codes
  • HaasScript
    • Using HaasScript
      • HaasScript Facts
      • Charting
      • Order Handling
      • Interval
      • Input Fields
      • Positions Handling
        • Fee correction
      • Position Information
      • Memory Management
      • Optimizations
      • Signal Handling
      • Trading
    • Script Editor
      • Syntax
      • Parameters
      • Interaction
    • Visual Editor
      • Blocks
      • Parameters
      • Flow Control
      • Interaction
    • Custom Commands
    • Tutorials
      • Trade Bot Guide
        • Creating A Trade Bot
          • Visual Editor Guide
          • Script Editor Guide
          • Custom Containers
        • Customizing Indicators
        • Customizing Safeties
        • Customizing Insurances
        • Creating Easy Indicators
      • Unmanaged Trading Guide
        • Executing Orders
        • Managing Orders
        • Managing Positions
        • Managing Wallet
      • Script Editor
        • Classes
        • MadHatter BBands
        • Percentage Price Change
      • Visual Editor
        • Importing Scripts
        • SmoothRSI
        • Scalper Bot
    • Commands
      • Array Helpers
      • Charting
      • Constants
      • Custom Commands Helpers
      • Easy Indicators
      • Easy Insurances
      • Easy Safeties
      • Equations
      • Flow Control
      • Input Fields
      • Input Settings
      • Mathematical
      • Memory Helpers
      • Miscellaneous
      • Order Handling
      • Order Information
      • Position Information
      • Position Prices
      • Price Data
      • Price Market Information
      • Profit Information
      • Settings
      • Signal Helpers
      • String Helpers
      • Technical Analysis
      • Technical Analysis Helpers
      • Time Information
      • Trade Actions (Managed)
      • Trade Actions (Unmanaged)
      • Trade Bot
      • Trade Market Information
      • Wallet
  • API Endpoints
    • Software API
    • Market Data API
    • Account Data API
    • Trade Data API
    • Advanced Order API
    • Trade Bot API
    • Custom Trade Bot API
    • ENUMS
    • Data Objects
  • Examples
    • Script Bots (C#)
      • Scalper Trade Bot
      • Flash Crash Trade Bot
    • Script Indicators (C#)
      • Indicator Script
      • Technical Analysis Library
    • Pshai Scripts (C#)
      • BBands Ext
      • BBands Ext v2
      • Chaikin A/D Line
      • Calibrator
      • Pshai's RVI
    • Scripted Driver
  • Other Resources
    • YouTube
    • Guides & Tutorials
    • Questions & Answers
    • Community Projects
  • Need Help?
    • Ask on Discord
    • Submit Support Ticket
Powered by GitBook
On this page
  • Script Editor
  • IfNull
  • Load & Save
  • Visual Editor
  • Between update cycles
  • In Script

Was this helpful?

  1. HaasScript
  2. Using HaasScript

Memory Management

Keeping track of values

PreviousPosition InformationNextOptimizations

Last updated 5 years ago

Was this helpful?

Script Editor

There are 2 ways in which we can preserve data between update cycles. With the IfNull() command or the Load() and Save() commands

IfNull

The IfNull() command will initialize a variable when it has no value set yet.

-- Initialize value as global
highestValue = IfNull(highestValue, 0)

-- Update value
highestValue = Max(highestValue, CurrentPrice().high)

Notice that IfNull only works with global variables. If you define your variable as local and assign values to it using IfNull, you will get an error about unknown references.

Load & Save

Load & Save work the same as IfNull() but with 2 commands. This set can be used in the normal scripts, but not in custom command scripts. Custom commands do not support IfNull() because global variables in custom commands are not allowed.

-- Initialize value as local
local highestValue = Load('highestValue', 0)

-- Update value
highestValue = Max(highestValue, CurrentPrice().high)

-- Save value
Save('highestValue', highestValue)

Load and Save works best with local variables.

Remember to always save your values if they are loaded.

Visual Editor

Between update cycles

With Save() & Load() we can preserve data between update cycles.

Remember to always save your values if they are loaded.

In Script

The Visual Editor has 2 special blocks that can be used in your script that transfers values from A to B without connecting a line. This can be useful if you need to use a value on multiple places or when you want to remove long lines from your script. SessionSet() will save the value and SessionGet() will get the value and continue execution. This set can also be used in order to control execution flow within your script.

The values saved by SessionSet() are reset after every update cycle.

Memory Helpers
Memory Helpers
Flow Control