新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 521

 
祝大家复活节快乐!如何解决这个问题,在mql4的double类型 在计算价格时没有给出-9315605757223320000.00,-9232595408891630000.00,但mql5从某处挖出了它们?也许是引号中的一个小故障?如何规避这种情况?谢谢。
 
mwwm:
祝大家复活节快乐!如何解决这个问题,在mql4的double type 在计算价格时没有给出-9315605757223320000.00,-9232595408891630000.00,但是mql5从某个地方挖出了它们?也许是引号中的一个小故障?如何规避这种情况?谢谢你。
那么代码在哪里呢?
 
Artyom Trishkin:
代码在哪里?

这里有一个粗略的说法。

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot OC
#property indicator_label1  ""
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
#property strict 
//--- indicator buffers
double Op[],Hi[],Lo[],Cl[],Ti[];
double q1[100],q2[100];

///---------
double Lim1[10],Lim2[10];
double Max1[10],Min1[10];
double Max2[10],Min2[10];
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+ 
int OnInit()
  {
//--- откроем файл 
   ResetLastError();
//--- привязка массива к индикаторному буферу с индексом 0 
   SetIndexBuffer(0,Ti,INDICATOR_DATA); SetIndexBuffer(1,Op,INDICATOR_DATA);SetIndexBuffer(2,Hi,INDICATOR_DATA);
   SetIndexBuffer(3,Lo,INDICATOR_DATA); SetIndexBuffer(4,Cl,INDICATOR_DATA);
//---- установка значений индикатора, которые не будут видимы на графике 
//--- 
   ArraySetAsSeries(Ti,true);
   ArraySetAsSeries(Op,true);
   ArraySetAsSeries(Hi,true);
   ArraySetAsSeries(Lo,true);
   ArraySetAsSeries(Cl,true);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+ 
//| Custom indicator iteration function                              | 
//+------------------------------------------------------------------+ 
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   ArraySetAsSeries(time,true); 
   ArraySetAsSeries(open,true); 
   ArraySetAsSeries(high,true); 
   ArraySetAsSeries(low,true); 
   ArraySetAsSeries(close,true); 
   ArrayInitialize(Lim1,1);ArrayInitialize(Lim2,1);
  
   int f=1;
/////////      
//--- Проверка на минимальное колиество баров для расчёта
   if(rates_total<1) return 0;
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if(limit>1) // если это первый запуск, или изменение истории, или открытие нового бара
     {
      limit=rates_total-1;                   // установим начало цикла на начало исторических данных
      ArrayInitialize(Ti,EMPTY_VALUE);       // инициализируем массив
      ArrayInitialize(Op,EMPTY_VALUE);
      ArrayInitialize(Hi,EMPTY_VALUE);
      ArrayInitialize(Lo,EMPTY_VALUE);
      ArrayInitialize(Cl,EMPTY_VALUE); 
     }
 int p=0;
    
//--- Расчёт индикатора
   for(int i=limit-1; i>=0 && !IsStopped(); i--)
     {
      Op[i]=open[i];Hi[i]=high[i];Lo[i]=low[i];Cl[i]=close[i];

            q1[1]=((Hi[i+f+0]+Lo[i+f+0])/2+Hi[i+f+0])/2;
            Lim1[1]=q1[1]-Hi[i+f+1];  
            Max1[1]=MathMax(Max1[1], Lim1[1]);
            Min1[1]=MathMin(Min1[1], Lim1[1]);

double n=100000000;
if(MathAbs(Lim1[1])>n){p++;Print(Lim1[1]," = ",p,"  = ",i);}
 } 
//--- return value of prev_calculated for next call 
   return(rates_total);
  }
 
你好!我想从mql安装vps。我有2个不同经纪公司的账户,我想从2个不同的信号提供者那里复制信号 到每个账户。我是否需要为每个账户连接一个单独的vps,10美元/月,或者我可以连接一个?
 
请把mt4的直接链接发给我。我试图下载mt4,但mt5却被安装了。提前感谢。
 
Aleksei Poliakov:
请把mt4的直接链接发给我。我试图下载mt4,但mt5却被安装了。预先感谢你。
只要从你的经纪人那里下载就可以了。或另一个。
 
Artyom Trishkin:


Alexey Viktorov:


谢谢你,我明白了。如果我两次或三次关闭一个订单的某个部分,我如何保持跟踪?例如,我关闭了0.1手,然后我关闭了0.5手,然后我又关闭了0.25手。最后关闭的头寸 将等于开仓票,但我应该如何寻找之前关闭的头寸的利润?

 
PolarSeaman:

谢谢你,我明白了。如果我两次或三次关闭一个订单的某个部分,我如何保持跟踪?例如,我平了0.1手,然后又平了0.5手,然后又平了0.25手,最后一次平仓的仓位 将等于开仓票,以及前一次平仓的利润,我应该如何搜索?

P1是唯一的一个。保持你自己的记录和历史。

另一个选择是使用终端的订单历史,但它有一些棘手的细微差别。

 
Maxim Kuznetsov:

P1,也是唯一的一个。保留自己的记录和历史。

好一个转折!))。

 

我在论坛上发现了一个计算从某一日期开始的利润的函数,"函数返回从某一日期开始关闭的头寸 货币 总利润"。

我想这对我来说是可行的。只是如何找出我部分关闭的头寸的开仓日期?

原因: