//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж//------------------------------- Функция определения тренда по МАшкам ----------------------------//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж// Возврвщает 1 = тренд вверх, -1 = тренд вниз, 0 = флэт...//------------------------------------------------------------// -------------- Внешние переменные -------------//============================================================externstring MATrendDetectorParameters = "Параметры детектора тренда";
externdouble Limit150 =20;
externdouble Limit21 =20;
externdouble Limit5 =20;
// ===============================================================// ---------------------- Собственно сама функция ----------------// ===============================================================int TrendDetectorMA (string sy, int tf)
{
double MA150, MA150UP, MA150DN,
MA21, MA21UP, MA21DN,
MA5, MA5UP, MA5DN,
pt;
// ---------------------------------------
pt=Point;
if (sy=="" || sy=="0") sy=Symbol();
MA150 =iMA(sy,tf,150,0,MODE_SMA, PRICE_MEDIAN,1);
MA21 =iMA(sy,tf,21,0,MODE_SMA, PRICE_MEDIAN,1);
MA5 =iMA(sy,tf,5,0,MODE_SMA, PRICE_MEDIAN,1);
MA150UP =MA150+Limit150*pt;
MA150DN =MA150-Limit150*pt;
MA21UP =MA21+Limit21*pt;
MA21DN =MA21-Limit21*pt;
MA5UP =MA5+Limit5*pt;
MA5DN =MA5-Limit5*pt;
// --------------------------------------// ------------- Рассчёт данных ---------if (
MA5DN>MA21UP && // Если нижняя граница быстрой МАшки выше верхней границы средней МАшки и...
MA21DN>MA150UP // нижняя граница средней МАшки выше верхней границы медленной МАшки,
)
return(1); // значит тренд вверх, возвращаем 1if (
MA5UP<MA21DN && // Если верхняя граница быстрой МАшки ниже нижней границы средней МАшки и...
MA21UP<MA150DN // верхняя граница средней МАшки ниже нижней границы медленной МАшки,
)
return(-1); // значит тренд вниз, возвращаем -1elsereturn(0); // В остальных случаях у нас флэт, возвращаем 0
}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
这个挑战是这样的。
int tr=TrendDetectorMA (NULL, 5); // NULL, 0 = текущий символ, либо явно, напр. EURUSD
// 5 = таймфрейм, можно 15, 30, 60, 240, 1440, 10080, 43200, хотя можно было
// и красивее сделать.
Comment ("\n","Тренд = ", tr);
return;
测试员没有报告任何错误,只是没有下订单。
请指出错误。 逻辑:如果条形图的МА[0]值高于MA[1],你应该买入,反之,应该卖出(写这段代码是为了尝试将简单的条件变成复杂的条件而举例)。
这个代码没有使用MA[0]和MA[1],而是使用MA[j]和MA[j+1]。
在对代码进行了小幅修改后(非常小),出现了错误4107
我可以让它发挥作用,但这将是一个完全不同的EA。我把它简化到最大限度。而这里的代码可以减半以上。
如果止损和接管设置为零,专家顾问就会开始进行交易。
回复
问题是,顾问工作和指标根本不工作!
Vinin,如果你能让它在止损或止盈时收盘,主要的是感受到mql在处理数组中不同条形的哲学。
我已经检查过了。它是有效的。信号是方向的改变
很好,但在代码中是如何运作的(逻辑):如果MA150+20>MA5>MA150-20和MA150+20>MA21>MA150-20,那么平坦,否则趋势。
这个挑战是这样的。我想在MT4中使用Ramus卷,它们似乎有更真实的卷。
我的系统被设置为总是想开一个订单,我通过禁止信号来限制它,只有信号才允许我交易=订单
我现在有一个小问题--没有晚间交易,但在夜间平仓时有随机订单的问题--到目前为止,我梦想教EA区分平仓,而不是限制它在一天中的时间工作。对于趋势的估计,我在EA逻辑中使用了更高的TF,所以我能够在晚上把它放在一个小时的TF上,它似乎没有在M15上那么顽固。
晚上好,我的MQL4指标不工作,根本就没有!请帮助! 回复 顾问工作的事实,而指标根本就不工作!
F1帮助--技术指标 部分
例如,我如何使用对象箱和对象集在随机窗口中画一条水平线?