PDA

View Full Version : 需要帮助翻译一个简单的指标



sazutlk
01-23-2009 07:27, 07:27 AM
你好,我有一个简单的指标,我用easylanguage制作,现在我想把它翻译成MT4。易语言是这样的:

vars:mmoment(0);

矩= maxlist(POS(动量(H 2)),POS(动量(1,2)),
POS(动量(1,6)),POS(动量(1,5)),
POS(动量(1,3)),POS(动量(H,6)),
POS(动量(H,5)),POS(动量(H,3)));
如果百分比(0.05,百分比,100)则绘图1(1,xxx)


它绘制了一个信号,当所有这些势头在100个时期内处于最低势头的5%时。
有人可以帮助我吗?

CHohanna
07-17-2021 17:46, 05:46 PM
我不知道简单的语言,所以我不能以这种方式帮助你。我非常了解英语。也许你可以用简单的英语来描述你需要的指标,这里的人可以帮忙。问候,禅宗

sazutlk
07-17-2021 19:07, 07:07 PM
谢谢你的回答,逻辑是这样的:1.我们计算参数的动量函数:高,长2高3长4高5长6低2低3低 - 长度4低 - 长度5低 - 长度6 2.我们将所有数字转换为正数(我不知道函数是用英文命名的)ex:如果是-7我们使他成为7 3.我们找到最大的数字。这将是结果。 4.我们排列A的最后100个值。 5.然后我们验证最近的A是否在我们列表中最低的5%。 (如果低于A的其余值的95%) - 这是百分位数函数。 6.如果5的答案是肯定的,那么我们在我们的图表上放上一个点。或者一个箭头:d这个指标将给出拥塞区域的信号,我希望这个更清楚

sazutlk
07-17-2021 20:28, 08:28 PM
任何人?

CHohanna
07-17-2021 21:48, 09:48 PM
你想把这个指标称为什么?

sazutlk
07-17-2021 23:09, 11:09 PM
你是指什么名字有指标?不要紧,如果你愿意,我会以你的名字命名

CHohanna
07-18-2021 00:30, 12:30 AM
我不确定这是不是你要找的。加载需要运算的计算的费用需要一段时间。但它会稳定下来并且不会如此耗费大量资源来完成初始运行。问候,禅宗

sazutlk
07-18-2021 01:51, 01:51 AM
我不确定这是不是你要找的。加载需要运算的计算的费用需要一段时间。但它会稳定下来并且不会如此耗费大量资源来完成初始运行。问候,禅宗
万分感谢。我会试试看,并给你一个反馈。 (我知道它应该是很多计算)

sazutlk
07-18-2021 03:12, 03:12 AM
有些事情是错的。我试图理解代码来核实它,但我不能。我会尽快解释一下:首先我们计算这些势头中的最高点。那么我们希望找到我们的指标是否处于先例值的最低5%。

tlisha.7
07-18-2021 04:32, 04:32 AM
也许这会有所帮助:============================================= ================================================== =========简单的语言 - 是啊真的==================================== ================================================== ==================动量(功能)动量研究是超买/超卖的振荡器。它是通过从参数PRICE返回的数值中减去由参数PRICE返回的当前条的值来计算的,该值是发生在LENGTH条之前的条。如果当前小节的值超过小节的值,则该函数的值为正数。如果当前小节的值小于过去小节的值,则该函数的值为负值。因此,由MOMENTUM函数返回的值在零以上和以下振荡。函数Momentum(PRICE,LENGTH)参数PRICE指定感兴趣的资产的某个价格LENGTH要考虑的尾部条的数量返回包含当前条的Momentum的数值。用法如果市场下跌超过x点,市场被认为是超卖。如果市场增加了超过x点,市场被认为是超买。如果您要使用Close对参数PRICE进行硬编码,并将参数LENGTH与10进行硬编码,则该函数将从当前条的关闭中减去10个条之前的关闭。 ================================================== ================================================== ==== Pos(保留字)(num)是一个数字表达式。返回num的绝对值。示例Pos(-5)返回5. Pos(350)返回350. ================================== =============================================== MaxList(保留字)返回指定输入的最高值。 (Num1)是表示计算中要使用的值的数字表达式。 (Num2)是表示要在计算中使用的值的第二个数字表达式。 (Num3)是表示要在计算中使用的值的第三数字表达式,等等。示例MaxList(45,72,86,125,47)返回值125. MaxList(18,67,98,24,65 ,19)返回值为98. ========================================= ===================================百分位数(函数)计算一个百分位数(第k个值)指定期间。函数百分位数(PCNTILE,PRICE,LENGTH)参数PCNTILE一个数字表达式,表示0和1之间的选定百分位数值(.25 =%25)PRICE指定要考虑的价格信息LENGTH表示时间长度被视为返回包含指定期间的百分位数(第k个值)的数值,由价格和长度定义。用法百分位数是价格值,因此观察值的PCNTILE百分比小于PCNTILE值。示例根据最后10个条的收盘价将Value1赋值给第25个百分位:Value1 = Percentile(.25,Close,10);根据最后21个小节的范围为Value2指定第50个百分位的值:Value2 = Percentile(.5,Range,21); ================================================== ==========================

sazutlk
07-18-2021 05:53, 05:53 AM
大声笑肯尼,不是关于我有多聪明,但不是我学习metastock和easylanguage编程的程序员。我有点厌倦了从MT4开始。无论如何,有时候也许会是thanx

tlisha.7
07-18-2021 07:14, 07:14 AM
这并不意味着这是侮辱,而是认为这些定义可能对帮助你的程序员有帮助 - 禅宗和所有人。我不太了解百分点,否则我可能会刺伤它。肯。

nedveltt
07-18-2021 08:35, 08:35 AM
大声笑肯尼,不是关于我有多聪明,但不是我学习metastock和easylanguage编程的程序员。我有点厌倦了从MT4开始。无论如何,有时候也许会是thanx
LOL聪明到可以交易,足够聪明地编程线是他的签名账单。他没有和你说话,那是他所有的帖子。大声笑。

CHohanna
07-18-2021 09:55, 09:55 AM
所以这个动量不是我们在MT4上的动力指标?好的,我会在稍后有空时再作修改。关注,禅

sazutlk
07-18-2021 11:16, 11:16 AM
LOL聪明到可以交易,足够聪明地编程线是他的签名账单。他没有和你说话,那是他所有的帖子。大声笑。
哈哈愚蠢的我

CHohanna
07-18-2021 12:37, 12:37 PM
1附件这里是Kenz987所描述的更新版本。问候,禅宗
https://www.forex-pedia.com/attachments/1518955967558129530.mq4

sazutlk
07-18-2021 13:58, 01:58 PM
禅宗非常感谢。看起来像现在好了。我稍后再看。我希望我有时可以还给你

sazutlk
07-18-2021 15:18, 03:18 PM
优秀的工作禅,坦克再次我设置在图表上的最大酒吧在300,现在是不需要很长时间来加载指标。你的代码是如此清晰,即使我能够做一些小修改大声笑

CHohanna
07-18-2021 16:39, 04:39 PM
那很棒。很高兴它能为你解决问题。如果可以的话,请与班级分享修改过的作品,以便希望其他人可以从中受益。干杯。 =)问候,禅

tlisha.7
07-18-2021 18:00, 06:00 PM
嘿 - 我不知道你可以动态分配这些东西!我总是改变它们并重新编译 - 这将是一个很大的帮助。谢谢。我每天都会学习一些关于MT4的新知识。肯///extern字符串Wingdings_Table = http://docs.mql4.com/constants/wingdings; extern int diagramNum = 75; extern color diagramColor = SkyBlue; extern int diagramWidth = 2;/SetIndexStyle(0,DRAW_ARROW,EMPTY,diagramWidth,diagramColor); SetIndexBuffer(0,Diagram_Buffer); SetIndexArrow(0,diagramNum);//

弗朗辛雅恩
07-18-2021 19:21, 07:21 PM
@禅;您能否帮我将以下Tradestation代码转换为MT4:插入的代码{Choppy Market Index Function这个函数返回一个从0到100的值。一个较低的值表示较高的市场犹豫不决(choppiness),而一个较高的值表示一个趋势市场。唯一的输入是我们回顾的条数。}输入:periodLength(Numeric); Vars:num(0),denom(1);如果(periodLengthlt; gt; 0)则开始denom =最高(高,periodLength) - 最低(低,periodLength); num =关闭#91; periodLength-1#93; - 关; num = AbsValue(num); ChoppyMarketIndex = 0.0; if(denomlt; gt; 0)then ChoppyMarketIndex = numdemon * 100;结束;你有没有注意到这个函数是如何由其他函数组成的?我们使用Highest和Lowest函数计算了denom(分母)。我们通过使用AbsValue(返回数字的绝对值)函数来计算num(分子)。这个函数中唯一令人困惑的代码片段可能是:插入代码关闭#91; periodLength-1#93; - 关闭您可能会问,为什么我们从periodLength减去1。这是一个很好的问题。如果您将今天的收盘价纳入计算中,那么30天前的收盘价将以Close [29]为参考。记住Close [1]是昨天的收盘价,而不是今天的收盘价。既然我们希望我们的指数在0到100之间,我们就消除了市场下跌的负面信号。我们只对绝对距离感兴趣。这是我想出来的,但不知道它编码是否正确:插入代码double ChoppyMarketIndex(int periodLength){double num = 0;双denom = 0; if(periodLength!= 0){denom = High#91; iHighest(Symbol(),PERIOD_D1,MODE_HIGH,periodLength,0)#93; - 低#91; iLowest(符号(),PERIOD_D1,MODE_LOW,periodLength,0)#93 ;; num =关闭#91; periodLength-1#93; - 关闭#91; 1#93 ;; num = MathAbs(num);/denom = MathAbs(denom); } if(denom!= 0){return(NormalizeDouble(numdenom * 100,0)); } } 提前致谢,

CHohanna
07-18-2021 20:42, 08:42 PM
Hi TimeFreedom,如果你想抓住我的注意力,请下次我下午。我实际上并没有花时间梳理所有主题,找到针对我的帖子,所以你需要指出这一点。说真的,如果我没有意外点击这个线索,我不会看到你的问题。看起来像是命运,所以我会看看我能做些什么。 =)第一件事是第一件事。这是要应用于指标还是EA?如果它将在指标中,那么这一行num = Close [periodLength-1] - Close [1];会给你一个问题......问候,Zen p.s.,我现在要请你PM指导你回复我的问题。

弗朗辛雅恩
07-18-2021 22:02, 10:02 PM
碰撞请帮助验证MT4代码是否正确。