User Guide
-
User Guide for NTTX Advisors
- NetTradeX Advisors Terminal
-
Articles
-
NetTradeX Language: Introduction
- Language Basics
- Language Functions
-
Language System Objects
- Deal Management
- Order Management
- Indicators
- Object-Oriented Programming
-
DLL files
-
Object Account
-
Object Bars
-
Object Chart
-
Object datetime
-
Object History
-
Object file
-
Object Globals
-
Object Math
-
Object Symbols
-
Object System
Function - a piece of code or algorithm that performs a specific sequence of operations. Each function may include:
- function name
- return value
- formal parameters
- function body
Example:
int multiplication(int a, int b)
{
return a*b;
}
Function name - "multiplication" ; return value - int , formal parameters "a" and "b" (both int types), function body consists of a single operator - return a*b;
Parameters can be passed into the function both by value and by reference. When parameters are passed by value, they do not change after the execution of the function.
Example:
int Initialize()
{return(0);}
int Run()
{
int a=1;
changeA(a);
System.Print("a="+a);
return(0);
}
void changeA(int a)
{
a=2;
}
int DeInitialize(){return(0);}
Output:
Parameters can be passed to function by reference. In that case, after the function is executed, parameters values may change. For this purpose the keyword &out must be specified between the parameter type and its name.
int Initialize()
{return(0);}
int Run()
{
int a=1;
changeA(a);
System.Print("a="+a);
return(0);
}
void changeA(int &out a)
{
a=2;
}
int DeInitialize(){return(0);}
Output:
The parameters passed to the function can have default values. If any parameter is set by default, then all subsequent parameters should be set by default.
Example:
int Initialize()
{return(0);}
int Run()
{
System.Print("sum1="+sum(2));
System.Print("sum2="+sum(10,20,30));
return(0);
}
int sum(int a, int b=3, int c=4)
{
return a+b+c;
}
int DeInitialize(){return(0);}
Output:
sum1 = 9 sum2 = 60
The function can return a reference to a global variable. Using this reference, recording and reading the value of the global variable may be performed.
extern int a1=0;
extern int a2=0;
extern int a3=0;
extern int a4=0;
extern int a5=0;
int Initialize()
{return(0);}
int Run()
{
for(int i=0;i<5;i++)
{
changeGlobal(i)=7;
}
for(int i=0;i<5;i++)
{
System.Print("i="+i+" value="+changeGlobal(i));
}
return(0);
}
int DeInitialize(){return(0);}
int& changeGlobal(int i)
{
switch(i)
{
case 1: return a1;
case 2: return a2;
case 3: return a3;
case 4: return a4;
case 5: return a5;
}
return a5;
}
Output:
i=0 value=7 i=1 value=7 i=2 value=7 i=3 value=7 i=4 value=7
For convenience of use of user functions, it is allowed to group and put them into individual files.
These files, if necessary, should be included by using the directive #include "folder\filename".
Example:
Let there be a compiled io.ntl file , which is located in the Advisors folder:
void Print(array <int> a, string separator=" ")
{
string data="";
for(uint i=0;i<a.length();i++)
{
data+=a[i];
if(i<a.length()-1) data+=separator;
}
System.Print(data);
}
The script ArrayExample.ntl uses the Print function, defined in io.ntl:
#include "Advisors\io.ntl"
int Initialize()
{
return(0);
}
int Run()
{
array<int> a = {22,11,33};
Print(a);
return(0);
}
int DeInitialize()
{
return(0);
}