Guía de Usuario
-
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
The NetTradex language supports the operator overloading feature. Thus, the programmer can choose the way of functioning for any operator applied to instances of user classes. To implement the operator overloading, describe the method that has one of the following names (listed below), this method will be automatically invoked when the corresponding operator is applied.
Operations and their equivalent methods
Equivalent methods for unary prefix operators
| Operator | Method |
| - | opNeg |
| ~ | opCom |
| ++ | opPreInc |
| –- | opPreDec |
Equivalent methods for unary postfix operators
| Operator | Method |
| ++ | opPostInc |
| –- | opPostDec |
Equivalent methods for comparison operators
| Operator | Method |
| == | opEquals |
| != | opEquals1 |
| < | opCmp |
| <= | opCmp2 |
| > | opCmp2 |
| >= | opCmp2 |
1For the == and != operations, use the single opEquals method, which should return a variable of the bool type. The != operation is processed similarly, but the returned result will be the opposite.
2For the operations <,<=,>,>=, use a single opCmp method, which should return a variable of the int type. If any object passed as a method argument is larger than the instance of an object, where this method is called, the function should return a negative value when they are equal - 0 is returned.
Equivalent methods for assignment operators
| Operator | Function |
| = | opAssign |
| += | opAddAssign |
| -= | opSubAssign |
| *= | opMulAssign |
| /= | opDivAssign |
| %= | opModAssign |
| &= | opAndAssign |
| |= | opOrAssign |
| ^= | opXorAssign |
| <<= | opShlAssign |
| >>= | opShrAssign |
| >>>= | opShrAssign |
Equivalent methods for binary operators
| Оperator | Function |
| + | opAdd |
| - | opSub |
| * | opMul |
| / | opDiv |
| % | opMod |
| & | opAnd |
| | | opOr |
| ^= | opXor |
| << | opShl |
| >> | opShr |
| >>> | opUShr |
Let us overload the postfix ++ operator and the binary + operator
class A
{
int a;
int b;
// Constructors
A()
{
}
A(int a, int b)
{
this.a = a;
this.b = b;
}
// Operation ++
A@ opPostInc()
{
a++;
b++;
return this;
}
// Operation+
A@ opAdd(const A &in other)
{
A obj;
obj.a = this.a + other.a;
obj.b = this.b + other.b;
return obj;
}
void Print()
{
System.Print("a="+a+" b="+b);
}
}
int Run()
{
A x(5,10);
x++;
x.Print();
A y(7,11);
A w(3,4);
A s;
s = y + w;
s.Print();
return 0;
}
Indexing operator
| Operator | Function |
| [] | opIndex |
To access the user class object elements, the function get_opIndex should be called with a single parameter - the element number. To change the method value, the method set_opIndex must be implemented with two parameters: the number of the element and the value of the parameter.
Example of using the [] operator for the user class.
class MyArray
{
// Array where the values are kept
array <float> x;
// Getting the element value by index
float get_opIndex(uint idx)
{
// If there is no item with this number or a number is negative
if((idx > x.length-1) || (idx < 0))
{
return 0;
}
return x[idx];
}
// Setting the element value
void set_opIndex(uint idx, float value)
{
// When the index is negative, quit immediately
if(idx<0)return;
// When there is no element with this index
if(idx>=x.length)
{
for(uint i=x.length; i<idx; i++)
{
x.insertLast(0);
}
x.insertLast(value);
}
// When the element exists
else
{
x[idx]=value;
}
}
// Array content displaying
void Print()
{
string output;
for(uint i=0;i<x.length;i++)
{
output+=" ["+i+"]="+x[i];
}
System.Print(output);
}
}
int Run()
{
MyArray a;
a[2]=22;
a.Print();
a[4]=44;
a.Print();
a[3]=33;
a.Print();
return 0;
}
Displaying:
[0]=0 [1]=0 [2]=22 [0]=0 [1]=0 [2]=22 [3]=0 [4]=44 [0]=0 [1]=0 [2]=22 [3]=33 [4]=44