错误、漏洞、问题 - 页 1845

 
Nikolai Semko:
问题-请问开发商。
在切换时间段时,保存一些变量或数组的可能性非常欠缺,这样它们就不会被重新初始化。还是可以通过 OnDeinit,定义一个REASON_CHARTCHANGE原因代码, 以某种方式完成?
我只是在我的程序主体中有相当繁琐的与时间有关的计算,我不想每次都重新计算。我觉得我们错过了一些特殊类型的全局变量,这些变量在时间框架变化时不会被重新初始化。我已经学会了在终端没有全局变量的情况下如何处理简单的变量,但对于结构或数组,我不知道如何做,而且似乎这种可能性根本不存在。当然,你可以使用资源,但这是非常混乱的。
尝试使用一个指标。当改变TF时,全局变量不会在那里被重新初始化(据我记得)。或者通过一个文件。
 
Konstantin:

怎样?

像这样。

struct MyArray
{
   double buff[];
   
   MyArray()
   {
   }
   MyArray( int n )
   {
      ArrayResize( buff, n );
   }
   MyArray( const MyArray& other )
   {
      ArrayCopy( buff, other.buff );
   }
   ~MyArray()
   {
      ArrayFree( buff );
   }
   
   void operator=( const MyArray& other )
   {
      ArrayCopy( buff, other.buff );
   }
   
   void assign( int n, const double val = 0.0 )
   {
      ArrayResize( buff, n );
      ArrayInitialize( buff, val );
   }
};

MyArray func()
{
   MyArray myArray;
   
   // Заполняем массив.
   
   return myArray;
}
 
Koldun Zloy:

例如,像这样。

这不是所问的问题,但也许这适合问题的作者,对这个问题有一个明确的答案--没有。

服务台不存在拒绝的情况

关于交易、自动交易系统和交易策略测试的论坛

虫子、虫子、问题

fxsaber, 2017.04.02 10:34

是否可以通过引入用函数返回数组 的能力来弥补数组指针的不足?
int[] Func()
{
  int a[] = {1, 2, 3};

  return(a);
}

Print(Func()[1]); // 2

关于交易、自动交易系统和交易策略测试的论坛

虫子、虫子、问题

fxsaber, 2017.04.01 10:20

很久以前,[]运算符被添加到字符串类型
string Str = "AB C";
Print(CharToString(Str[1])); // B


开发者方面是否有可能为数组增加一个=运算符?

int a[], b[];
a = b; // ArrayCopy(a, b);


由于没有指针,这样的操作符将使语言更加灵活--发现它将非常方便的情况。

 
Alexey Kozitsyn:
尝试使用一个指标。当TF发生变化时,这些全局变量不会被重新初始化(就我记得的而言)。或者通过一个文件。

这是反过来的。

关于交易、自动交易系统和交易策略测试的论坛

全局程序变量的初始化和其他有用的知识。

Artyom Trishkin, 2016.12.05 20:27

收到SD的答复。


我认为你可以安全地使用全局变量EA的这种功能。


 
Alexey Kozitsyn:
尝试使用一个指标。当TF被改变时,全局变量不会被重新初始化(就我记得的而言)。或者通过一个文件。

这就是我使用该指标的原因。它们被重新初始化了。文件根本不是一个选项,它很慢,而且很难提供良好的同步性。在这种情况下,我最好使用ResourceCreate但这一切都不是很方便。如果我有几十个数组,其中一些有几个Mb,我必须至少写两个读和写的函数,在 OnDeinit创建一个处理器我已经试验过这一切,面临着同步的问题,因为在多线程中,资源和文件有自己的独立生活。当没有足够的可能性在某些事件中不重新初始化时,为什么要做一个驼峰,在我的例子中 就是时间框架的变化。
 
Nikolai Semko:

指示器和我使用它。重新初始化。文件根本不是一个选项,它很慢,而且很难提供高质量的同步。在这种情况下,我最好使用ResourceCreate但这一切都不是很方便。如果我有几十个数组,其中一些有几个Mb,我必须至少写两个读和写的函数,在 OnDeinit创建一个处理器我已经试验过这一切,面临着同步的问题,因为在多线程中,资源和文件有自己的独立生活。我不知道我为什么要这样做,我只是想避免重新初始化一些特定的事件,在我的例子中,它是一个时间框架的变化。
答案就在这里
 
Artyom Trishkin:

这恰恰相反。



谢谢,我不知道有这个EA!
但是,伙计,如果我需要指标中的那块芯片!

 
Koldun Zloy:

例如,像这样。


谢谢你的例子,但是因为一个数组而创建一个复杂类型的 对象正是我不想要的,这一切都感觉是不必要的代码))
 
fxsaber:

这不是所问的问题,但也许这适合问题的作者,对这个问题有一个明确的答案--没有。

在服务台中没有拒绝的情况。



让我们希望他们能引入这个功能,尽管引入数组的指针会更平常一些
 
Artyom Trishkin:

这恰恰相反。

哦,伙计...是的,我完全是按照你的帖子指导的,只是把它搞混了:)