#define VK_D 0x44voidOnChartEvent(constint id, // идентификатор события constlong& lparam, // параметр события типа long constdouble& dparam, // параметр события типа double conststring& sparam) // параметр события типа string
{
Comment(__FUNCTION__,": id=",id," lparam=",lparam," dparam=",dparam," sparam=",sparam);
int y =(int)dparam;
datetime dt =0;
double price =0;
int window=0;
int i;
int x=(int)lparam;
if (id==CHARTEVENT_CLICK)
{
ChartXYToTimePrice(0,x,y,window,dt,price);
ObjectCreate("Trend Line"+i,OBJ_TREND,0,dt,price,dt,price);
ObjectSetInteger(0,"Trend Line"+i,OBJPROP_SELECTED,true);
if(id==CHARTEVENT_KEYDOWN)
{ switch(int(lparam))
{ case VK_D:
i=rand();
}}}}
下午好。请帮助我编写以下代码,用于一个EA。我想通过一个数组来做(如果你有更好的选择,请帮忙)。一般来说,EA发送消息,但我希望它通过一个数组(临时)来发送。也就是说,当开始发送信息时,专家顾问会检查信息是否在之前被发送过(检查信息是否存储在数组中),如果没有,就会发送信息,如果找到了信息,就会省略发送。我希望它是清楚的)非常感谢你
你对问题的陈述有把握吗?
很简单,有选择。
- 不要重复上一条信息
- 忽略过期的(设置了一些时间滞后),也就是说,信息必须被重复。
P.S. 第一个变体是第二个变体的一个特例,但它更容易实现。你对问题的定义也是第二个变体的特例,具有无限的滞后性。
如果你感兴趣,这里是你问题的解决方案。
我们定义了两个数组:一个是文本数组,用于存储消息,另一个是索引数组,用于搜索消息。
索引数组 为int类型。在第一个维度,我们写出了文本信息的校验和。在第二个 - 第一个数组的行号。一个索引数组按第一维排序。
我们得到一个新的消息。读取其校验和。使用ArrayBsearch() 函数查找此类信息。如果没有找到,那么该信息就是原始信息。将其添加到信息数组中,并通过引用索引数组进行校验,记得要对其进行排序。
检查和的选项有哪些?我会采取这个办法:考虑到字符数和文本的校验和。例如,文本的校验和是字符编码的总和。鉴于最近的变化,它不能超过65 536*256。也就是说,信息的校验和可能看起来如下。
的字符数乘以1000万,再加上文本校验。
亲!角度上的线有问题。
我用坐标 建立了一个TRENDBYANGLE。
- 我需要一个角度。
帮助说,程序创建的线--ZERO的角度是可以的。
我在不碰线的情况下,在同样的坐标上又运行了同样的代码--出现了正确的度数,而不是零。为什么,我怎么能在第一次就做对?
或者我给了一个坐标--我问角度--它说是0。然后我又给了一个坐标--它说是前一个坐标的角度,胡说八道。
我把这个评论移到开头,因为没有人回答,但我真的需要它=/。
是否可以这样实现:如果我按下任何一个键,指标代码的一部分被打开(负责用鼠标点击创建一个对象),然后如果有事件发生(代码的第二部分,事件可能是,例如创建相同的对象),那么代码的第一部分被禁用(如果不这样做,对象是由每次点击创建的),当你按下键时也会运行,如此循环)
你可以。添加OnChartEvent 块。在其中,根据你的想法,记录必要的压力、测量和描述对它们的反应。
我无法实现在按下键之前的那段时间禁用部分代码=/ 有一个更简单的方法,但有一个问题:当按下键时,我 需要将其值返回到第一个if语句的开头。
这段代码只有在鼠标被点击时才会执行,其中有3行代码检查按键事件。而这3行代码是在几毫秒内执行的,即使在当前调用OnChartEvent的过程中id能够改变,在这段时间内,执行3行代码,按键被按下的可能性=0%。很明显,在一个在某个id值被触发的块内检查id,并在那里等待一个不同的值是没有意义的。首先,检查按键,在一个单独的区块中,在一个变量中保存按键的编号或仅仅是按下所需按键的事实。并通过这个变量,启用或禁用位于块中用于鼠标点击的那段代码。
非常感谢!)这是我要找的一行,如果(id==CHARTEVENT_CLICK && key == 'D'),不能连接两个事件,这没有工作,如果(id==CHARTEVENT_CLICK & id==CHARTEVENT_KEYDOWN),再次感谢)。
你好,我有一个函数,从过去的n个蜡烛中计算出一个蜡烛的平均大小。有时它输出以下数值:"5e-05.0"。我不需要它们,令我羞愧的是,我不知道它们有多大,如何把它们切断。NormalizeDouble()没有帮助。请告诉我如何以编程方式计算这种数字,以切断它们。
你好,我有一个函数,从过去的n个蜡烛中计算出一个蜡烛的平均大小。有时它输出以下的值:"5e-05.0"。我不需要它们,令我羞愧的是,我不知道定量地有多少,如何把它们切断。NormalizeDouble()没有帮助。请告诉我如何以编程方式计算这种数字,以切断它们。
那就砍掉什么吧。
这样的小蜡烛,5个点,只有在低纬度,在5位数的账户,在低时间段可能会出现。如果你不处理剥头皮的问题,但对于n个蜡烛来说,平均数有时是如此之小,那么这个函数的实现应该是可疑的。