22 四月 2016
22 四月 2016
净额系统
通过这个系统,在同一时间,一个交易品种您只能有一个普通持仓:
这没关系,导致反向交易的是 — 已执行的市场订单或触发的挂单。
下面示例显示了执行两个每笔0.5手的EURUSD买入交易:
执行这两个交易即是1手的一个普通持仓。
锁仓系统
通过这个系统,您可以一个交易品种拥有多个持仓,包括反向持仓。
如果您有一个交易品种的持仓,执行一个新交易(或触发挂单),那么会另外建立一个新持仓。您当前持仓不会改变。
下面示例显示了执行两个每笔0.5手的EURUSD买入交易:
执行这些交易则会新建两个独立的持仓。
新交易操作类型 - Close By
新的交易类型已经被加入锁仓账户 — 通过反向持仓来平仓。这个操作允许在单一交易品种关闭两个反向的持仓。如果反向持仓手数不同,那么两个持仓中只有一个订单保留持仓。其交易量将等于平仓手数的差异值,而持仓方向和开盘价将匹配平仓的更大(交易量)。
相比单独关闭两个持仓,关闭反向持仓允许交易者保留一个点差:
在后面那种情况下,下单"close by" 订单。平仓信息在该评论指明。一组反向持仓通过两个"out by"交易关闭。关闭两个持仓得到的总利润/亏损只在一个交易中指明。
订单和持仓(包括历史订单)标签在导入过程中不会保留,因为从MetaTrader 4导入一个历史记录可能相当于MetaTrader 5中的4个历史操作。所有的交易记录都会分配新的标签。
根据交易商导入的方式可以保留或替代账号。
class CAnimal { public: CAnimal(); // 构造函数 virtual void Sound() = 0; // 纯虚拟函数 private: double m_legs_count; // 动物脚的数量 };这里Sound() 是一个纯虚拟函数,因为它声明为纯虚拟函数PURE (=0)的说明符。
class CAnimal { public: virtual void Sound()=NULL; // PURE 类函数,应被覆盖在派生类中,CAnimal 现在是抽象类,不能创建 }; //--- 派生自一个抽象类 class CCat : public CAnimal { public: virtual void Sound() { Print("Myau"); } // PURE被覆盖,CCat 不是抽象类,可以创建 }; //--- 错误使用的例子 new CAnimal; // 'CAnimal' 错误 - 编译器返回"不能实例化抽象类"的错误 CAnimal some_animal; // 'CAnimal' 错误 - 编译器返回"不能实例化抽象类"的错误 //--- 正确使用的示例 new CCat; // 没有错误 - CCat 类不是抽象类 CCat cat; // 没有错误 - CCat 类不是抽象类抽象类的限制
//+------------------------------------------------------------------+ //| 抽象基类 | //+------------------------------------------------------------------+ class CAnimal { public: //--- 纯虚拟函数 virtual void Sound(void)=NULL; //--- 函数 void CallSound(void) { Sound(); } //--- 构造函数 CAnimal() { //--- 虚拟类函数的显式调用 Sound(); //--- 隐式调用(使用第三个函数) CallSound(); //--- 构造函数或析构函数始终调用自己的函数, //--- 即使它们是虚拟函数并且已经被派生类中已调用的函数所覆盖 //--- 如果调用的函数是纯虚拟函数 //--- 调用会引起“纯虚拟函数调用”的关键的执行错误 } };然而,抽象类的构造函数和析构函数可以调用其他成员函数。
typedef int (*TFunc)(int,int);现在,TFunc是一种类型,可以声明函数的变量指针:
TFunc func_ptr;func_ptr 变量可以存储函数地址以便稍后声明:
int sub(int x,int y) { return(x-y); } int add(int x,int y) { return(x+y); } int neg(int x) { return(~x); } func_ptr=sub; Print(func_ptr(10,5)); func_ptr=add; Print(func_ptr(10,5)); func_ptr=neg; // 错误:neg 不是 int (int,int) 型 Print(func_ptr(10)); // 错误:应该有两个参数函数指针可以被存储并作为参数传递。您不能得到非静态类函数的指针。
ulong PositionGetTicket( int index // 持仓列表索引 );
bool PositionSelectByTicket(
ulong ticket // 持仓标签
);