我写了一个虚拟余额的代码总感觉有些不对又不知道错在哪里?
我弄了一个代码,最终目的计算出:
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;
[*] }
[*] }
[*]}
[*]//+------------------------------------------------------------------+
[*]
复制代码
谢谢 支持下 {:1_181:} 支持下
页:
[1]