datetime prevtime=0,
time_last_bar[1]={0};
bool New_Bar=false; // Флаг нового бараconstlong chart_ID=0; // ID графика conststring nname="TrendLine"; // имя линии constint sub_window=0; // номер подокна datetime time1=0; // время первой точки double price1=0; // цена первой точки datetime time2=0; // время второй точки double price2=0; // цена второй точки datetime prevbar=0;
double cclose[];
datetime ttime[];
//--------------------------------------------------------------------void Fun_New_Bar() // Ф-ия обнаружения ..
{ // .. нового бара
New_Bar=false; // Нового бара нетCopyTime(Symbol(),Period(),0,1,time_last_bar);
if(time_last_bar[0] != prevtime) // Сравниваем время
{
prevtime = time_last_bar[0]; // Теперь время такое
New_Bar=true; // Поймался новый бар
}
}
//=============================================================================================================intOnInit()
{
CopyTime(Symbol(),Period(),0,1,time_last_bar);
prevtime = time_last_bar[0];
ArraySetAsSeries(cclose,true);
ArraySetAsSeries(ttime,true);
ArrayResize(cclose,5);
ArrayResize(ttime,5);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
ObjectsDeleteAll(0," ",-1,-1);
Print("------------Работа эксперта завершена!------------");
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
Fun_New_Bar(); // Обращение к ф-ииif (New_Bar==false) // Если бар не новый..return; // ..то уходимPrint("новый бар !");
ObjectsDeleteAll(0," ",-1,-1);
ArrayInitialize(cclose,0);
ArrayInitialize(ttime,0);
CopyTime(Symbol(),0,1,2,ttime);
CopyClose(Symbol(),0,1,2,cclose);
price1=cclose[1];
time1=ttime[1];
price2=cclose[0];
time2=ttime[0];
Print("price1=",price1," time1=",time1," price2=",price2," time2=",time2);
//--- создадим трендовую линию по заданным координатам if(!ObjectCreate(chart_ID,nname,OBJ_TREND,sub_window,time1,price1,time2,price2))
{
Print(__FUNCTION__,
": не удалось создать линию тренда! Код ошибки = ",GetLastError());
return;
}
}
//--------------------------------------------------------------------------------
如何在元编辑器中禁用Unicode保存?它需要ANSI。
为什么有这种需要?
如果文本包含128-255范围内的字符,编辑器会自动以Unicode保存文件。
为什么有这种需要?
如果文本中的字符在128-255范围内,编辑器会自动以Unicode保存文件。
我的所有文件现在大了一倍。我在记事本中以ANSI格式保存它们--好的。之后我在元编辑器中打开并保存--又是unicode。
试着打开并保存这个附件文件。
我决定把它们放在mqh中,并把它们链接到 "保存"。事实证明,这是不可能的--#属性只能在源mq5-文件中设置。
为什么有这样的限制?
我不能在私人信息 中添加附件。
至少有4.9Mb的ex4
我有几个指标包含相同的字符串
决定把它们放在mqh中,并把它们连接到 "保存"。事实证明,这是不可能的--#属性只能在源mq5-文件中设置。
为什么有这样的限制?
目前,MQL程序的项目文件是*.mq5(4)源文件。
此外,用户可以使用可能包含这些属性的第三方*.mqh文件。
为什么有这种需要?
如果文本包含128-255范围内的字符,编辑器会自动以Unicode保存文件。
这是新的东西。为什么不从系统设置中提取单字节字符的编码?直到现在,这一直是默认的。
同样,可以做一个选项,让有需要的人可以启用两字节的格式。
此外,用户可以使用第三方的*.mqh文件,其中可能包含这些属性。
可以在mqh中设置,但它们不会被读取,因为它们不存在。
当我们有一个例子时,我们将在一个帖子中结合所有内容:问题、例子、操作系统和终端的数据。
完成了!我现在在Win764bit下,但问题还是一样。在实时情况下,一切都应该是这样的,但在可视化的测试器中,左边的线点粘得很牢,右边的线点却在移动。
关于交易、自动交易系统和策略测试的论坛
虫子,虫子,问题
Alexey Kravchenko, 2016.10.04 09:09
你好!
我有一个问题,我不明白。
我在前两个柱状体的收盘点之间画了一条正常的趋势线(在每个新柱状体 上)。
一切都在实时工作中顺利进行。但在测试器的可视化模式中,线的左点是附着在参照物的起点上的,根本就没有移动。问题是什么?
Z.U. 我在MT4上似乎没有这个问题。
关于交易、自动交易系统和策略测试的论坛
虫子,虫子,问题
Alexey Kravchenko, 2016.10.04 09:57
这个例子有一个问题。在那里,bolt shell本身需要几个文件。我晚上回家后会做一个更简单的。
操作系统是WinXP SP3。建于1434年
LE 0 14:55:39.873 Terminal MetaTrader 5 build 1434 started (MetaQuotes Software Corp.)
DI 0 14:55:39.889 终端Microsoft Windows XP (基于X86的PC), IE 08.00, Intel Pentium Dual E2200 @ 2.20GHz, RAM: 1150 / 2037 Mb, HDD: 74562 / 152625 Mb, GMT+07:00
LJ 0 14:55:39.889 Terminal C:\Program Files\MetaTrader 5
在任何情况下,okrozme那些我在上面给出的操作,其他的都没有做。当检测到一个新的条形图 时,所有的东西都被擦掉,并画出一条新的线。但是,一个完整的例子的编译我将做。
ж
完成了!我现在在Win764bit下,但问题还是一样。在实时情况下,一切都应该是这样的,但在可视化的测试器中,左边的线点粘得很牢,右边的线点却在移动。