汇市神兽 发表于 2018-11-22 12:59:18

我写了一个虚拟余额的代码总感觉有些不对又不知道错在哪里?



我弄了一个代码,最终目的计算出:
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<N;i++)
[*]      {
[*]         虚拟账户平均余额=(虚拟账户余额+(虚拟账户余额+虚拟订单获利))/N;
[*]         //虚拟账户平均余额=(100*N+虚拟账户余额)/N;
[*]      }
[*]   }
[*]}
[*]//+------------------------------------------------------------------+
[*]

复制代码










在唱什么歌 发表于 2020-11-26 12:34:25

谢谢

慢慢的不着急 发表于 2021-7-9 16:34:54

支持下

嬴政一 发表于 2021-8-4 11:38:00

{:1_181:}

天天 发表于 2024-8-5 21:27:17

支持下
页: [1]
查看完整版本: 我写了一个虚拟余额的代码总感觉有些不对又不知道错在哪里?