// обработка видимых баров.
int bars_count=WindowBarsPerChart();
int bar=WindowFirstVisibleBar();
for(int i=0; i<bars_count; i++,bar--)
{
// номера баров уменьшаются, так как нумерация идет в обратном порядке.
// ...
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает расстояние в пунктах между рынком и ближайшей |//| позицей |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| op - торговая операция ( -1 - любая позиция) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+int DistMarketAndPos(string sy="", int op=-1, int mn=-1) {
double d, p;
int i, k=OrdersTotal(), r=1000000;
if (sy=="" || sy=="0") sy=Symbol();
p=MarketInfo(sy, MODE_POINT);
if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) {
d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
if (r>d) r=NormalizeDouble(d, 0);
}
if (OrderType()==OP_SELL) {
d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
if (r>d) r=NormalizeDouble(d, 0);
}
}
}
}
}
return(r);
}
谢谢你的建议。 它可以工作,但当你安装指标时,它的画法很奇怪(见图表)。 从图表窗口的左边界到垂直黄线的缩进(以条为单位)对于窗口中任何数量的可见条数都是不间断的,等于8条。 一旦这8条超过窗口左边界,所有图表线立即出现,然后一切正常。 它可以被修复,如何修复?
像这样试试
这个代码结构允许在每一个新的刻度线上只在零点和第一个(用于检查)条上重新计算指标,而不是重新计算已经计算过的指标。 但我需要通过窗口中所有可见的条来建立一个指标,然后在这一点上找到它的最大值和最小值!帮助我解决我之前的帖子中提到的问题。有一个例子,但我不是很清楚。谁可以逐行解释这三个字符串?
不太清楚你需要什么,如果你需要找到指标的可见条数 的最大值和最小值,先画出指标,然后再搜索。
也许使用WindowPriceMax(), WindowPriceMin()更好。
斯捷潘2
作品
阵列毕竟有一个故障,但与此同时
c. 在工作中没有任何问题
))
下午好。
人们,告诉我用什么来测试EA。因为内置的MT平均给出50%的模拟质量,而人们在截图上发布的是90%以上。
下午好。
各位,你们能不能给我一些建议,用什么来测试EA?因为内置的MT平均给出50%的模拟质量,而在截图上人们发布的是90%以上。
如果你有整个一分钟的历史,那将是90%。99%是通过自己创建一个勾选历史 来实现的。这通常是使用杜卡斯平报价来完成的。谷歌关于99%质量测试主题的脚本
你好,如何在专家顾问的代码中实现一个条件,在最后一个订单后设置相同类型的订单50点。
请告知在所附指标的代码中哪里可以插入一行,我对此一无所知。问题是,这个指标在一个单独的窗口中显示货币对的动向,但由于其中一个货币对在市场概览窗口中缺失,所以没有显示任何内容。有人建议我使用这个。
错误可能只发生在这个地方
double Vol = iCustom(s[n],0, "Ind ZeroLag MACD",FastEMA,SlowEMA,0,0) / MarketInfo(s[n], MODE_POINT) 。
当MarketInfo(symbol, MODE_POINT)上没有数据时,我们得到一个除以0的 结果。
在MarketInfo(symbol, MODE_POINT)中插入检查。
我不知道该把它放在哪里(我在市场概览中没有看到英镑/纽元对)。请告知。