您需要 登录 才可以下载或查看,没有帐号?注册
我弄了一个代码,最终目的计算出:
1,现在的虚拟账户余额
2,N次平仓获利的平均账户虚拟余额
总感觉有些不对又不知道错在哪里?恳请老师及大家指正undefined undefined
//--- 输入参数input double 下单量=0.01;input int 止损=100;input int 止盈=888;input int 订单编号=160;input int LMA=2;input int SMA=10;input int LRMA=3;input int 点距=100;input int a=20;input int b=30;//+------------------------------------------------------------------+//---全局变量//double 虚拟开仓价格,虚拟手数,虚拟买单止损,虚拟买单止盈,虚拟卖单平仓信号;//bool 虚拟买单开关=false;//+------------------------------------------------------------------+//| EA 初始化功能 |//+------------------------------------------------------------------+int onInit() {//---//--- return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+//| EA 取消初始化功能 |//+------------------------------------------------------------------+void onDeinit(const int reason) {//--- }//+------------------------------------------------------------------+//| EA 主程序 |//+------------------------------------------------------------------+void onTick() {//--- 虚拟买单函数(); 虚拟卖单函数(); 虚拟平仓函数(); }//+------------------------------------------------------------------+string 虚拟买单注释= 0 ,虚拟卖单注释= 0 int 虚拟平仓信号=0;double 虚拟买单开仓价格=0,虚拟卖单开仓价格=0;double 虚拟买单平仓价格=0,虚拟卖单平仓价格=0;double 虚拟买单止损=0,虚拟买单止盈=0,虚拟卖单止损=0,虚拟卖单止盈=0;int 虚拟订单编号=0;double 虚拟账户余额=100,虚拟账户平均余额=0,虚拟订单获利=0;int N=0;int 虚拟订单获利信号=0;int 虚拟平仓次数=0;//+------------------------------------------------------------------+//| 虚拟买单函数 |//+------------------------------------------------------------------+void 虚拟买单函数() { if(虚拟买单条件成立) { 虚拟平仓信号=1; 虚拟卖单平仓价格=Ask; if(虚拟买单注释== 0 ) { 虚拟买单开仓价格=Ask; 虚拟买单止损=Ask-止损*Point; 虚拟买单止盈=Ask+止盈*Point; 虚拟买单注释= 买单1 虚拟订单编号=订单编号; } if(虚拟买单注释== 买单1 ) return; } }//+------------------------------------------------------------------+//| 虚拟卖单函数() |//+------------------------------------------------------------------+void 虚拟卖单函数() { if(虚拟卖单条件成立) { 虚拟平仓信号=1; 虚拟买单平仓价格=Bid; if(虚拟卖单注释== 0 ) { 虚拟卖单开仓价格=Bid; 虚拟卖单止损=Bid+止损*Point; 虚拟卖单止盈=Bid-止盈*Point; 虚拟卖单注释= 卖单1 虚拟订单编号=订单编号; } if(虚拟卖单注释== 卖单1 ) return; } }//+------------------------------------------------------------------+void 虚拟平仓函数() { if(虚拟平仓信号==1 虚拟买单注释== 买单1 ) { 虚拟订单获利信号=1; 虚拟订单获利=(虚拟买单平仓价格-虚拟买单开仓价格)*Point*下单量 *100000; 虚拟买单开仓价格=0; 虚拟买单止损=0; 虚拟买单止盈=0; 虚拟买单注释= 0 虚拟订单编号=0; } if(虚拟买单止损==Bid) { 虚拟订单获利信号=1; 虚拟订单获利=(虚拟买单止损-虚拟买单开仓价格)*Point*下单量 *100000; 虚拟买单开仓价格=0; 虚拟买单止损=0; 虚拟买单止盈=0; 虚拟买单注释= 0 虚拟订单编号=0; } if(虚拟买单止盈==Bid) { 虚拟订单获利信号=1; 虚拟订单获利=(虚拟买单止盈-虚拟买单开仓价格)*Point*下单量 *100000; 虚拟买单开仓价格=0; 虚拟买单止损=0; 虚拟买单止盈=0; 虚拟买单注释= 0 虚拟订单编号=0; }//--- if(虚拟平仓信号==1 虚拟卖单注释== 卖单1 ) { 虚拟订单获利信号=1; 虚拟订单获利=(虚拟卖单平仓价格-虚拟卖单开仓价格)*Point*下单量 *100000; 虚拟卖单开仓价格=0; 虚拟卖单止损=0; 虚拟卖单止盈=0; 虚拟卖单注释= 0 虚拟订单编号=0; } if(虚拟卖单止损==Ask) { 虚拟订单获利信号=1; 虚拟订单获利=(虚拟卖单止损-虚拟卖单开仓价格)*Point*下单量 *100000; 虚拟卖单开仓价格=0; 虚拟卖单止损=0; 虚拟卖单止盈=0; 虚拟卖单注释= 0 虚拟订单编号=0; } if(虚拟卖单止盈==Ask) { 虚拟订单获利信号=1; 虚拟订单获利=(虚拟卖单止盈-虚拟卖单开仓价格)*Point*下单量 *100000; 虚拟卖单开仓价格=0; 虚拟卖单止损=0; 虚拟卖单止盈=0; 虚拟卖单注释= 0 虚拟订单编号=0; } }//+------------------------------------------------------------------+//| 虚拟余额计算 |//+------------------------------------------------------------------+void 虚拟余额函数() { 虚拟平仓次数=虚拟平仓次数+虚拟订单获利信号; if(虚拟平仓次数==N) { 虚拟账户余额=虚拟账户余额+虚拟订单获利; for(int i=0;i i++) { 虚拟账户平均余额=(虚拟账户余额+(虚拟账户余额+虚拟订单获利))/N; //虚拟账户平均余额=(100*N+虚拟账户余额)/N; } } }//+------------------------------------------------------------------+
复制代码
[/tr]
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!