datetime date[]; // тут будем хранить данные времени баров, которые видны на экране// если нужны другие данные баров, заводим соотв. массивы void DoWork(bool redrawAll = false)
{
int visibleBars = 1, firstVisibleBars = 0;
visibleBars = (int)ChartGetInteger(0, CHART_VISIBLE_BARS);
firstVisibleBars = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR);
ArrayResize(date, visibleBars + 10); // выделяем память с запасом// так можно узнать масштаб графика, может пригодитсяint scale = (int)ChartGetInteger(0, CHART_SCALE);
// копируем данные времен баров if (CopyTime(Symbol(), Period(), startpos, visibleBars, date) == -1)
{
Print("Не удалось скопировать значения времени! Код ошибки = ", GetLastError());
return;
}
//--- определим шаг, если надо работать с масштабомint step = 1;
switch (scale)
{
case0:
step = 12;
break;
case1:
step = 6;
break;
case2:
step = 4;
break;
case3:
step = 2;
break;
}
double priceMin = ChartGetDouble(0,CHART_PRICE_MIN,0);
double priceMax = ChartGetDouble(0,CHART_PRICE_MAX,0);
for (int i = visibleBars - 1; i >= 0; i--)
{
/*
проходимся по всем видимым барам и ищем стрелки, искать можно путями:
1. Изначально при создании стрелок надо формировать имена стрелок с привязкой ко времени, например
string name = "UpArrow" + IntegerToString(TimeCurrent());
тогда тупо ищем стрелку с таким именем и далее двигаем, куда надо
2. Заносить стрелки в структуры и класть их в хештаблицу, первый проще
*/
}
}
问题如下:当提供者的订单被关闭时,签约人的订单仍被保留。显然是因为传播的差异。当签约人的交易在供应商那里被关闭时,我应该如何使其立即关闭?应该改变什么设置?
谢谢你,Alexey!!!! for 4))))
所以......我找到了我的旧火鸡,并从中剪出我需要的东西。我不会为你写)),但它可以作为一个开端。我在那里加了注释,变量的名称从名字上就可以看出来。
我的朋友,我有一个关于信号设置的问题。
问题如下:当供应商的订单被关闭时,它们仍然保留在签约人的一个订单上。显然是因为传播的差异。当签约人的交易在供应商那里被关闭时,我应该如何使其立即关闭?应该改变什么设置?
这笔交易也应该几乎瞬间完成。问题。
所以......我找到了我的旧火鸡,并从中剪出我需要的东西。我不会为你写)),但它可以作为一个开端。我在那里加了注释,变量的名称从名字上就可以看出来。
此外,我也许应该在这一行中加入指标子窗口的编号?我只是不知道到底需要什么
补遗,你也许应该把指标子窗口的编号放在这一行?我只是不知道到底需要什么
哎呀,今天早上心不在焉,没有复制代码中的图表事件处理。
所以......我找到了我的旧火鸡,并从中剪出我需要的东西。我不会为你写)),但它可以作为一个开端。我在那里加了注释,变量的名称从名字上就可以看出来。
而在哪里附加的步骤,以及在一般情况下其功能,关于什么?
还有这个。
2. Заносить стрелки в структуры и класть их в хештаблицу, первый проще
我从来没有做过。如果可以的话,请给我一个代码例子,这样我就能理解、明白和应用。
哦,今天早上心不在焉,没有复制代码中的图形事件处理。
当你知道的时候,这就很容易了。只要你有愿望和手段,就可以敲打键盘。
而当你不知道而你又在挖掘的时候......那就很麻烦了......而如果有更多的暗示,你就完蛋了,没有神经了。
因此,感谢你的提示!!!!
感谢Alexey的帮助!
你在什么地方搞砸了投球,以及它的功能一般,关于什么?
还有这个。
我从来没有做过。如果可以的话,请给我一个代码例子,这样我就能理解、明白和使用它。
当我们水平压缩图形时(+/-键),会改变比例,有时图形对象会相互重叠。我引用了这个代码,以备不时之需,如何确定规模。
我不会引用带有哈希值的代码--我没有它,只是想到了它。最好是做变体1,它更简单。
关于知识--我建议每个学习的人,在闲暇时阅读帮助,只要在各部分跳一跳,一切都在那里。就是说,不要填鸭式的,我就是这样一个填鸭式的人,没有好处。你只需要知道,至少是大致上知道,有这样那样的...至少是节/分节。然后,当问题出现时,脑子里的齿轮就会旋转,并出现搜索的方向。原则上说,帮助并不完美,但也不错,有很多例子。
因为语言本身很简单,所以并不难学。在API方面出现困难,在哪里寻找什么,如何应用
乍一看,这项任务似乎和三分钱一样简单。但是!....
在指标窗口中有一条任何震荡器的线,它相对于 "0 "以不同的振幅摆动。
实际的问题是。
- 在从下到上的 "0 "交叉处,在指示器窗口的底部边界画一个箭头。
- 在 "0 "处从上往下交叉,在指示器窗口的上边界 附近画一个箭头。
- 在指标窗口中的振荡器图表的自我缩放中,箭头应自动保持在指标窗口的边界上。
即,在历史上前后滚动图表,或改变其水平比例,箭头应始终自动保持在指标窗口的边界上。
请不要给任何提示,"在财务上帮助我"))。请附上这种功能的源代码,或链接到它。
提前感谢!
请帮助我理解!
我需要找到 每一天(任其发展)的最大 跌幅(每天向文件写入一次) - MT4终端。
最大缩水是图表上从峰值到当前资金缩水的距离,资金缩水是当前的损失。
我写了以下代码
if(Analiz_Prosadki==true)
{
if(ContolSavaTXT==1)
{
ProfitNew=0;
ProfitMin=0;
ContolSavaTXT=0;
}
if(ContolSavaTXT==0)
{
ProfitNew=AccountInfoDouble(ACCOUNT_PROFIT);
BalansNew==AccountInfoDouble(ACCOUNT_BALANCE); //Текузее значение баланса
if (BalansNew>BalansMax) BalansMax=BalansNew;
if (ProfitNew<ProfitMin && BalansNew>=BalansMax) ProfitMin=ProfitNew;
if (ProfitNew<ProfitMin && BalansNew<BalansMax) ProfitMin=ProfitNew-(BalansMax-BalansNew);
}
ContolSavaTXT=Printer.Write((string)TimeCurrent(),ProfitMin); // Пишем информацию в файл - функция возвращает 1
}
但它在一些图表中是正确的,而在另一些图表中是不正确的。 同时,这些图表在视觉上是一样的。
我一定是在代码或逻辑上犯了一个错误,但我不明白是哪种错误。