[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 297

 
hoz:


没有什么理想!我只是观察那些写作的人,可以说是为了一般的前景。有时我发现一些技巧,我可能会从别人那里学到。有时我看到,代码根本无法阅读。例如,像tarasBY的。无论我如何努力,它都无法被阅读。我可以清晰地阅读它,然后 "砰 "的一声,我无法进一步理解任何东西。在许多地方也是如此。

我是一个朋友,他让我反编译,那里比tarasBY的代码更容易理解。也许这有点正常,但我怀疑很多下载者会理解他们。谁太聪明了,无法理解他们,他们将不会下载...那么问题来了,为什么要把它们贴在那里呢 :)

我也不使用他的任何东西!为什么要盲目地尝试做一些事情,你需要把一切都说清楚,为了什么。而出版物是用来做广告的,如果一切都很清楚,他们会下载,不会订购任何东西。
 
tara:
我按照格林威治时间来衡量我的时间。
我的时间比服务器的时间少一个小时,而我仍然住在中欧。而如果服务器是格林尼治标准时间,你应该还有三个小时。我去睡觉了。祝你有一个没有爆炸的美好夜晚!
 

我现在已经睡着了。晚上好。

在加泰罗尼亚地区他们怎么说?

 
晚上好!但现在已经是圣诞节了!但现在已经是深夜了!
 
GaryKa:
一点也不
是的,它是两个自然对数的比率。现在看看 "对数基数的替代 "中的公式。所以结果是,这个表达式
相当于bd_LOTSTEP的十进制对数。在MQL中,没有单独的函数用于十进制对数,所以使用了这种转换。


这就是我所说的。我的语言的代码...我认为要么是程序员不害怕数学,要么是一种保护,避免读代码(开玩笑)。我不知道,我个人的看法是,数学简化了算法,就像switch...case代替if一样。
 
rigonich:

显示SetVLine()。
 
你好,我试图了解如何在EA中插入自定义指标。编译得很好,但写出的数据绝对

,请指出错误所在。







我插入了所有的代码,除了 "版权"

extern int PeriodP=12;
extern int TimeFrame=0;
double P_up0,P_up1,FrApPrise;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- ---- return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() xml-ph-0016@deepl.in
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
//----

P_up0=iCustom(Symbol(),Period(), "Price channel",PeriodP, 0,0)
P_up1=iCustom(Symbol(),Period(), "rezerv-xrust",FrApPrise,0,0);
{Comment("show price channel=",P_up0,"\n", "show xrust=",P_up1);}
//----
return(0);
}



用了两个指标

1)https://www.mql5.com/en/code/8908

Price channel.mq4

2)https://www.mql5.com/ru/code/8318

Fractal_Level_Xrust_V2.mq4

请帮助,为什么1个显示而另一个不想要?
 
gyfto:

这就是我所说的。有条件的我的语言...我认为要么是程序员不害怕数学,要么是一种保护,避免读代码(开玩笑)。我不知道,我个人的看法是,数学简化了算法,就像switch...case代替if一样。

该代码有一个缺陷。这里,断章取义


整个问题的关键在于,表达

MathCeil(MathAbs(MathLog( 0.25 )/MathLog(10))) = 1

因此,每手价值将被四舍五入到小数点后一位。


不过,请继续阅读,也许会有帮助。

 

对我的问题的描述做一个小小的补充。我已经重新做了紧缩指标。以下是代码

#财产版权 "#Copyright © 2008, XrustSolution.#"
#property link "#xrust.ucoz.net#"

#property indicator_chart_window
Extern int TimeFrame=0;//如果=0,则为当前的。


extern string FrApNam="Ap";//对应于上行分形的线的名称。
外部字符串 FrDnNam="Dn";//对应于分形向下的线的名称

//-----------------------------------------------------------------------------+
双重FrPrise。
双重FrApPrise=0,FrDnPrise=0。

//+----------------------------------------------------------------------------+
空白的init(){

如果(TimeFrame==0){TimeFrame=Period();}。
IndicatorShortName("Factal_Level_Xrust "+TimeFrame)。
FrApNam=StringConcatenate(FrApNam,TimeFrame)。
FrDnNam=StringConcatenate(FrDnNam,TimeFrame)。
返回;}
空白的deinit(){
ObjectDelete(FrDnNam)。
ObjectDelete(FrApNam)。
评论(" ")。
返回;}
//+----------------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted()。
int限制。
双重临时工。
int i, j,k;
if(counted_bars<0) return(-1);
如果(counted_bars>0) counted_bars--。
limit=Bars-counted_bars。
//-----------------------------------------------------------------------------+

LineAp()。
LineDn()。
string FAP=DoubleToStr((FrApPrise),Digits)。
string FDP=DoubleToStr((FrDnPrise),Digits)。
int diap=MathRound((FrApPrie-FrDnPrise)/Point)。
{Comment("TimeFrame="+TimeFrame+)
"n/ApPrise111 ="+FAP+"。
"n/DnPrise ="+FDP+
"/nFractal Channel ="
+diap+"点");}

return(0);
}
//-----------------------------------------------------------------------------+
//按名称搜索水平线,如果价格有变化,则重画。
//-----------------------------------------------------------------------------+
空白的LineDn(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS))。
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS))。
//Comment(FrPrise)。
如果(ObjectFind(FrDnNam)==0){
如果(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){返回;}}。
FrDnPrise=FrPrise。
ObjectDelete(FrDnNam)。

WindowRedraw()。
返回;}
//-----------------------------------------------------------------------------+
//按名称搜索水平线,如果价格有变化则重画
//-----------------------------------------------------------------------------+
空白的LineAp(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS))。
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS))。
如果(ObjectFind(FrApNam)==0){
如果(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){返回;}}。
FrApPrise=FrPrise。
ObjectDelete(FrApNam)。

WindowRedraw()。
返回;}
//-----------------------------------------------------------------------------+
//Kim 尊敬和尊重 !!! |
//+----------------------------------------------------------------------------+
//| Author : Kim Igor V. aka KimIV, http://www.kimiv.ru |。
//+----------------------------------------------------------------------------+
//| 版本号 : 07.10.2006|
//| 说明:搜索最近的分形。返回价格水平。
//+----------------------------------------------------------------------------+
//| 参数: |
//| sy - 仪器名称(""或NULL - 当前符号)|
//| tf - 时间框架 ( 0 - 当前 TF) ||
//|模式--分形类型(MODE_LOWER|MODE_UPPER)|
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
如果(sy=="" || sy=="0") sy=Symbol();
double f=0。
int d=MarketInfo(sy, MODE_DIGITS), s;
如果(d==0) 如果(StringFind(sy, "JPY"<0) d=4; 否则d=2;

for (s=2; s<100; s++) {
f=iFractals(sy, tf, mode, s)。
如果(f!=0) 返回(NormalizeDouble(f, d))
}
Print("FindNearFractal(): Fractal not found")。
return(0);
}

我只是不需要图表上的线条,我只需要两个数字(这些精神指标中的每一个)。

 
palomnik:

对我的问题的描述做一个小的补充。重做了紧缩指标。以下是代码

如果你想得到答案,请尊重阅读你的潦草文字的人。

该代码应使用SRC 按钮插入-- 它在你的文章编辑框上方,与其他格式化工具一起。