[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 480

 

帮助 了解 这个专家顾问的意义


基于鳄鱼指标
,当绿线从下往上穿过红蓝两色时,发出买入信号;当绿线从上往下穿过红蓝两色时,发出卖出信号;当StopLoss和TakeProfit时,关闭仓位


编译过程中没有错误,但在策略测试器的测试过程中出现了错误
第一个错误是等待字符串的订单没有打开 删除了包含字符串的代码 字符从编译中没有错误 在策略测试器中运行
工作,但只打开了卖出的位置,买入不想要
你能不能看一下并签下代码中 的问题?

附加的文件:
all_2.mq4  2 kb
 
novicek:

帮助 处理这个EA

鳄鱼指示器
当绿线与蓝线交叉,红线从下往上交叉时,即为买入信号,打开买入仓位。
当绿线越过红线和蓝线,从上往下看是一个卖出信号。
当达到止损和止盈时关闭头寸。


编译过程中没有错误,但在策略测试器中测试时有错误
第一个错误是等待字符串的订单没有打开 删除了包含字符串的代码 从编译中没有错误 在策略测试器中运行
工作,但只在卖出时打开头寸 在买入时不想要
能不能看看并写出代码中 的问题所在


看看开头的几句话。

OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,magic,Ask , StopLoss * Point, Ask , TakeProfit * Point);
            
OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,magic,Bid , StopLoss * Point, Bid , TakeProfit * Point);

现在看看OrderSend函数本身的规范(见这里的描述https://docs.mql4.com/ru/trading/OrderSend)

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) 

并检查参数是否仍然存在

 
novicek:

请不要怀疑我的识字量
不放标点符号是我的狂欢,就这样。


当你把你的 "不加标点 "的狂欢付诸实践时,不要惊讶地发现你的质疑帖子经常被忽略。

人们也有一个尊重自己的习惯。
他们还有一个习惯,就是尊重自己的语言。

 
谢谢,但我在那里找不到解决方案,我需要将布林线应用于rsi,我可以手动做,但如何以编程方式做?
 
ZZZEROXXX:
谢谢你,但我没有找到解决办法,我需要在rsi上施加布林,你可以手动做,但如何以程序方式做?

布林线是MA在StdDev上向上和向下推的。你可以通过两种方式进行。

1.如果你对Deviat 的整数偏差变化感到满意,你可以使用iBandsOnArray 函数

2.如果你还需要计算Deviat 的十进制分数,你将不得不使用iMAOnArrayiStdOnArray 函数

它在代码中看起来如下。

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_minimum 0
#property indicator_maximum 100

#property indicator_color1 SkyBlue
#property indicator_color2 LimeGreen
#property indicator_color3 LimeGreen
#property indicator_color4 LimeGreen
#property indicator_style2 STYLE_DOT

extern int rsiPeriod=14;
extern int rsiPrice=PRICE_CLOSE;
extern int bbPeriod=20;
extern int bbShift=0;
int bbMethod=MODE_SMA;
extern double bbDeviat=2;

double rsi[], ma[], up[], dn[], stdev[];
//------------------------------------------------------------------    init
int init()
{
  int i=0;
  SetIndexBuffer(i, rsi); SetIndexStyle(i, DRAW_LINE); SetIndexLabel(i, "RSI"); i++;
  SetIndexBuffer(i, ma); SetIndexStyle(i, DRAW_LINE); SetIndexLabel(i, "MA"); i++;
  SetIndexBuffer(i, up); SetIndexStyle(i, DRAW_LINE); SetIndexLabel(i, "UP"); i++;
  SetIndexBuffer(i, dn); SetIndexStyle(i, DRAW_LINE); SetIndexLabel(i, "DN"); i++;
  IndicatorBuffers(5);
  SetIndexBuffer(i, stdev); SetIndexStyle(i, DRAW_NONE); // добавочный буфер расчета
  return(0);
}
//------------------------------------------------------------------    start
int start()
{
  int count=IndicatorCounted(); if (count<0) return; // если ошибка расчета
  int lim=Bars-count; if (lim>1) lim=Bars-1; // если нерасчитано более 1 бара, то полный пересчет
  // 1. получаем массив RSI
  for (int i=lim; i>=0; i--) rsi[i]=iRSI(Symbol(), Period(), rsiPeriod, rsiPrice, i);
  // 2. строим на основе RSI - МА (средняя линия болинджера), StdDev и Верхнюю и Нижнюю границу Боллинджера
  for (i=lim; i>=0; i--) 
  {
    ma[i]=iMAOnArray(rsi, 0, bbPeriod, bbShift, bbMethod, i); // средняя линия
    stdev[i]=iStdDevOnArray(rsi, 0, bbPeriod, bbShift, bbMethod, i); // отклонение
    up[i]=ma[i]+bbDeviat*stdev[i]; // верхняя граница
    dn[i]=ma[i]-bbDeviat*stdev[i]; // нижняя граница
  }
  return(0);
}
附加的文件:
_bbonrsi.mq4  3 kb
 
abolk:

当你实施你的 "不加标点 "的偏见时,不要惊讶你的质疑帖子会经常被忽略。
人们也有一种尊重自己的倾向。
他们还有一个习惯,就是尊重自己的语言。

这就对了。它伤害了眼睛,让你想转身离开。
而且无论如何都会产生怀疑--"关于我的识字(教育)"。
 
sergeev:

在代码中,它看起来像这样。

谢谢你!正是你所需要的。
 
abolk:


当你实施你的 "不加标点 "的偏见时,不要惊讶你的质疑帖子会经常被忽略。

人们也有一种尊重自己的倾向。
他们还有一个习惯,就是尊重自己的语言。

例如,我仍然不知道该把它们放在哪里,我只知道最后应该有一个点--我知道这一点。俄语是最难的语言。但它的优点是,你可以表达自己,这样任何其他语言都会羡慕的,尤其是脏话,它短小精悍,我有时会在别人难以理解你的脏话时用它,大家马上就能理解一切,白天也不会有人来问你愚蠢的问题。
 
亲爱的,你能不能告诉我,如何将几个TF的Open[1]和Close[1]的信息调用到Expert Advisor中?
 
俄语中的bzik和B是不同的东西。我有一个坚实的B,我已经很好了。