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

 
我们 能否创建一个EA,当最后一个开仓订单的止盈触发时,关闭所有订单?
 

亲爱的程序员!

请给予帮助。该指标在看涨的潜在背离上画出数值,而不画出看跌的潜在....。它写道,错误4002 - 数组索引 - 超出范围。

我似乎已经修复了一切...我花了一整个晚上...而这是一种耻辱--代码是最简单的...但它是用箭头画牛,而不是画熊......求你了!????????????????????? 中的错误是什么?

//+------------------------------------------------------------------+
//| div zz 5.mq4 | |
//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 CLR_NONE
#property indicator_color2 CLR_NONE
#property indicator_color3 BlueViolet
#property indicator_color4 Red
#define arrowsDisplacement 0.0001
double cci[];
double cci1[];
double bullishDivergence[]。
double bullishDivergence[]。

//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
int init()
{
//---- 指标

SetIndexStyle(0, DRAW_NONE)。
SetIndexStyle(1, DRAW_NONE)。
SetIndexStyle(2, DRAW_ARROW)。
SetIndexStyle(3, DRAW_ARROW)。

SetIndexBuffer(0, cci)。
SetIndexBuffer(1, cci1)。
SetIndexBuffer(2, bullishDivergence)。
SetIndexBuffer(3, bullishDivergence)。

SetIndexArrow(2, 233)。
SetIndexArrow(3, 234);

return(0);
}
//+------------------------------------------------------------------+
//|Custor指示器去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted()。
//----,最后计数的条形图将被重新计算。
如果(counted_bars>0) counted_bars--。
//int limit=Bars-counted_bars。
双重vpadcci[]。
double v[];
double hh[];
double ss[];



for (int i=500; i>=0; i--)
{
cci[i] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, i) 。
如果(
(cci[i]<cci[i-1])&&
(cci[i]<cci[i-2])&&
(cci[i]<cci[i+1])&&
(cci[i]<cci[i+2])
)
{
vpadcci[i]=cci[i]。
ss[i]=Low[i]。
}
}



for(int j=500; j>0; j--)
{
cci[j] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, j) 。
如果(
((cci[j+1]>vpadcci[10])&&
(cci[j]<vpadcci[10])&&
(low[j]>ss[10])) ||
((cci[j+1]>vpadcci[9])&&
(cci[j]<vpadcci[9])&&
(low[j]>ss[9])) ||
((cci[j+1]>vpadcci[8])&&
(cci[j]<vpadcci[8])&&
(low[j]>ss[8])) ||
((cci[j+1]>vpadcci[7])&&
(cci[j]<vpadcci[7])&&
(low[j]>ss[7]) ||
((cci[j+1]>vpadcci[6])&&
(cci[j]<vpadcci[6])&&
(low[j]>ss[6]) ||
((cci[j+1]>vpadcci[5])&&
(cci[j]<vpadcci[5])&&
(low[j]>ss[5])) ||
((cci[j+1]>vpadcci[4])&&
(cci[j]<vpadcci[4])&&
(low[j]>ss[4]) ||
((cci[j+1]>vpadcci[3])&&
(cci[j]<vpadcci[3])&&
(low[j]>ss[3]) ||
((cci[j+1]>vpadcci[2])&&
(cci[j]<vpadcci[2])&&
(low[j]>ss[2]) ||
((cci[j+1]>vpadcci[1])&&
(cci[j]<vpadcci[1])&&
(low[j]>ss[1]) ||
((cci[j+1]>vpadcci[0])&&
(cci[j]<vpadcci[0])&&
(low[j]>ss[0])
)

{ bullishDivergence[j] = Low[j] - arrowsDisplacement;
}
}


for (i=1; i<500; i++)
{
cci1[i] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, i) 。
如果
(
(cci1[i]>cci1[i-1])&&
(cci1[i]>cci1[i-2])&&
(cci1[i]>cci1[i+1])&&
(CCI1[i]>CCI1[i+2])
)
{
v[i]=cci1[i]。
hh[i]=High[i]。
}
}



for(j=1; j<500; j++)
{
cci1[j] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, j) 。
如果(
((cci1[j+1]<v[10])&&
(cci1[j]>v[10])&&
(high[j]<hh[10])) ||
((cci1[j+1]<v[9])&&
(cci1[j]>v[9])&&
(high[j]<hh[9])) ||
((cci1[j+1]<v[8])&&
(cci1[j]>v[8])&&
(high[j]<hh[8])) ||
((cci1[j+1]<v[7])&&
(cci1[j]>v[7])&&
(high[j]<hh[7]) ||
((cci1[j+1]<v[6])&&
(cci1[j]>v[6])&&
(high[j]<hh[6]) ||
((cci1[j+1]<v[5])&&
(cci1[j]>v[5])&&
(high[j]<hh[5])
)

{ { cci1[j]=High[j] + arrowsDisplacement;

}
}


return(0);
}



附加的文件:
divfzzg5.mq4  5 kb
 
从一个单独的线程转来的。建议在此提出简单的问题。代码应该通过SRC按钮发布,因为它更容易阅读。
<br / translate="no">。
珂迪姆 14.02.2011 09:29
你好。

在为专家顾问编程时,我对ma_shift 参数感到困惑------------在条形图中的中间线的移动。如果移位是正的,线就会向右移位。反之亦然,如果移位为负数,则线条会向左移位。
如果使用的是正值,则在跨越平均线时开出订单。
然而,如果我们将参数设置为负数,订单就不会被打开。
这跟它有什么关系?

以下是代码的摘录

SMFast0=iMA( NULL, Tmfrm_work, PeriodSMFast, -3, ModeSMFast, PriceSMFast, 0 ); // МА быстрая на текущем баре
SMFast1=iMA( NULL, Tmfrm_work, PeriodSMFast, -3, ModeSMFast, PriceSMFast, 1 ); // МА быстрая на первом баре

SMSlow0=iMA( NULL, Tmfrm_work, PeriodSMSlow, 0, ModeSMSlow, PriceSMSlow, 0 ); // МА медленная на текущем баре
SMSlow1=iMA( NULL, Tmfrm_work, PeriodSMSlow, 0, ModeSMSlow, PriceSMSlow, 1 ); // МА медленная на первом баре

if(SMFast0>SMSlow0 && SMFast1<SMSlow1)

{
Opn_B=true; // Критерий откр. Buy
Cls_S=true; // Критерий закр. Sell
}

if(SMFast0<SMSlow0 && SMFast1>SMSlow1)
{
Opn_S=true; // Критерий откр. Sell
Cls_B=true; // Критерий закр. Buy
} 
 

你好,我一直在努力学习如何编写EA,所以这里有一个问题。我如何规定EA在我设置止损买入或止损后再设置止损?也就是说,在止损买入和止损坐了5个点后(大致如此),EA立即给自己设了一个止损。

 
Poseidon:
是否有可能创建一个EA,当最后开仓的订单的止盈触发时,关闭所有订单?

你可以。

Pupersa 找到这个订单,改变 "止损 "参数。

KoDim, 也许是因为这些值被移到了左边,在右边的条形图上(你可以检查其交叉点)它们根本不存在?

 

向程序员提问:如何使小数点后的数字成为整数?)

例如,数字1,128需要128,数字1,12需要12,数字1,2需要2)

这个数字是一个外部变量。

 
关于MT5的问题。 我怎样才能知道测试员是否完成了工作?除了视觉上 :)
 
eddy:

向程序员提问:如何使小数点后的数字成为整数?)

例如,数字1,128需要128,数字1,12需要12,数字1,2需要2)

这个数字是一个外部变量。


见这里:https://docs.mql4.com/ru/basis/operations/math
 
nemo811:


如果资金和交易量(而不是艾略特波)在市场上起作用,而且价格运动不是混乱的,而是由交易量驱动的,那么2个交易对(在考虑的三个交易对中)的两个信号将给第三个交易对带来更强的信号。寻找订单积累水平,分析VSA,你会发现所需的X和Y))。

此外(见图),一个货币对(由2种货币组成)的明显平坦并不妨碍第三个货币对(其他2种)的趋势。如果超过1种货币的趋势正在进行,这就会产生一种 "市场混乱"。由于日内趋势不如中长期趋势稳定,这种混乱在小TF上最为明显。

从这个角度研究市场,我倾向于认为货币本身(而不是货币对)的趋势更加稳定,否则我们会得到一个根本无法分析的振荡器图表。

这就是这张照片所告诉我的。))))

在M1和M5测试 美元指数,结果比英镑/美元更差。由于历史档案非常小,大型TFs不能被测试。Fibogroup并没有为Nedex提供多少,许多经纪公司也没有提供。这就是为什么研究货币趋势和用小手(0.01)工作是有问题的 .....
 
eddy:

向程序员提问:如何使小数点后的数字成为整数?)

例如,数字1,128需要128,数字1,12需要12,数字1,2需要2)

这个数字是一个外部变量。

double a = 1.123345;
int b = a;
这也是可能的。