#property strict#property script_show_inputs//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
long chart_ID=0; // ID графикаstring name="TrendLine"; // имя линииint sub_window=0; // номер подокна//--- сбросим значение ошибкиResetLastError();
//--- создадим трендовую линию по заданным координатамif(!ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,Time[41],1.0656,Time[65],1.0494))
{
Print(__FUNCTION__,
": не удалось создать линию тренда! Код ошибки = ",GetLastError());
return;
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+//| Создает линию тренда по заданным координатам |//+------------------------------------------------------------------+bool TrendCreate(constlong chart_ID=0, // ID графика
.
.
.
//--- включим (true) или отключим (false) режим продолжения отображения линии влевоObjectSetInteger(chart_ID,name,OBJPROP_RAY_LEFT,ray_left);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправоObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
.
.
.
long chart_ID=0; // ID графикаstring name="TrendLine"; // имя линииint sub_window=0; // номер подокнаObjectDelete(chart_ID,name);
//--- сбросим значение ошибкиResetLastError();
//--- создадим трендовую линию по заданным координатамif(!ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,Time[minbar],Low[minbar],Time[IPMIN],Low[IPMIN]))
{
Print(__FUNCTION__,
": не удалось создать линию тренда! Код ошибки = ",GetLastError());
return(0);
}
ObjectSet("TrendLine",OBJPROP_TIME1,Time[minbar]);
ObjectSet("TrendLine",OBJPROP_PRICE1,Low[minbar]);
ObjectSet("TrendLine",OBJPROP_TIME2,Time[IPMIN]);
ObjectSet("TrendLine",OBJPROP_PRICE2,Low[IPMIN]);
if (IPMIN!=0){ double uroven= ObjectGetValueByTime(chart_ID,name,Time[1],sub_window);}
}
Print("uroven=",uroven);
if (Time[0] > b && Close[1] < uroven){Opn_B=true;}
如果你知道你的点的时间和日期,你只需要调用bool TrendCreate()
谢谢你的建议。结果是比这更容易。
我是这样做的。
P.S. 我不明白的一点是,为什么例子中的数字是这样选择的。
从它们开始,趋势线就在范围的中间某处。
...
从他们那里,趋势线被放在范围的中间某处。
现在要解决的下一个问题是如何将这条线继续向右延伸,并获得EA中的线的值?
脚本代码里有这一切。
脚本代码里有这一切。
1.当从测试器中调用时,交易被打开。如果我运行优化,到处都是零。当我启动任何优化运行时,交易都在那里。该怎么做?
2.如何使一个行在发生交易时被保存(在每个交易上),如果没有,则被删除?
交易需要由自己来控制。但是,为了使每个交易都有自己的行,你需要在创建时给每个行一个独特的名字。
如何?我可以给你举个例子吗?
测试期间的图形对象
在可视化测试中,专家顾问与真实图表进行互动。在正常的测试中,在没有可视化的情况下,专家顾问用一个没有渲染的 "虚拟 "图表进行操作;在这种情况下,一些微妙的情况是可能的。 当测试员处于优化模式时,不支持图形 对象。
两天的学习,结果发现不可能进行优化。
我想知道如果我创建一个指标。我是否能够通过它在我的专家顾问中获得线值?
谁必须说什么?也许,谁已经研究过这个问题了?
...
我想知道我是否可以做一个指标?我是否能够通过它获得EA中的线的价值?
...
如果指标创建了图形对象,然后获得它们的参数,则没有。
但通过使用指标来解决一切问题还是比较容易的。计算在指标中进行,其结果通过指标缓冲区显示。
还有一个选择。创建带有参数的全局变量而不是行,但这样一来,GetValueByShift()函数就不能工作了,你必须写出它的类似物。