大家好!
这显然不是所有的代码,但这是我正在揪心的主要部分。请检查代码中的"<<<<<<<<<<<<<"。这些是我感到困惑的地方。
翻译成通俗易懂的术语会帮助你......一次,今天,在这个特定的问题上......并为解释者花费一定的时间。
如果你说出你不理解的定义,也许下一次你可以解决你自己的问题,一段时间后,你可以成为解决其他人问题的人之一。
如果你尝试自己调查问题,你也会学到更多。例如,试试这个。
Alert(iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0));
你会看到函数 返回的是什么值...(就像Raptor说的,这不是一个价格)......而且你可能会更容易理解这个函数的定义。
像这样的事情对你的帮助比希望董事会的人有时间测试你的代码并做同样的故障排除要大得多,你应该自己学习如何做。
嗯?我很困惑--我要求的帮助是不是太多?
毕竟,我已经从头开始建立了我的整个EA(这是我自学的......),只是想从比我有更多知识的人那里得到一些指导......:s
"像这样的事情对你的帮助比希望董事会的某个人有时间测试你的代码并做同样的故障排除更多,你应该自己学习如何做。"
什么是地狱...我没有想到任何人会这么说!?
你的帖子让我们对情况有了更多的了解--感谢你。
这个论坛真的很有趣...我并不打算从任何人那里免费获得信息!我只是想弄清楚我如何正确识别与EMA交叉的柱子......。
Jeez....
当我读到Raptor的答案时,它告诉你你所做的确切问题。
价格被存储为双 变量,例如1.12345。
iHighest函数 返回一个整数(int),例如1或2或-100 ....,显然不是一个价格。
我不知道你想达到什么目的,但iHighest函数可能不是你想使用的。
如果在元编辑器中,你点击代码中的iHighest,然后按F1键,你会发现它返回的是一个整数(Raptor也告诉你了),你就会自己发现这一点了
我不知道你的困惑的来源。如果你不知道int变量和double变量的区别,你就缺少一些重要的基本知识,也就是说,你是想在走之前跑,而你想让别人来背你 :/
EDIT:你没有想到,在问别人之前,你必须自己做故障排除吗!?
多条移动平均线不会 在同一时间交叉。
找出最早的那条,它们都是按正确顺序排列的。
int DIR = 0; for(int iBar = 0; iBar < Bar; iBar++){ double MA20 = ... iBar), MA5 = ... iBar); : if( MA20 > MA5 && MA5 > ...) DIR = -1; else if(MA20 < MA5 && MA5 < ...) DIR = +1; // All fanning up. else if (DIR != 0){ iBar--; break; } // Last one was cross. }
你可能明白int和double的区别,但你不明白bar number(int)和price(double)的区别。
iHighest允许你将日期时间转换为条数(int),但OrderSend只接受价格(双数),所以在9点开单是没有意义的。
啊,找到了。
非常感谢你 :)我真的很感激!
谢谢你对我的耐心--我并不是想以一种期望别人为我做什么的方式出现;只是给我一些帮助的说明(按F1键的一切对我来说并不总是那么清楚。
大家好!
我希望在我的代码上得到一些帮助--目前卡在这个该死的部分!
以下是我试图写进代码的过程。
1)如果所有的移动平均线都是 "扇形 "的,并且交叉在一起,这样价格就在所有的移动平均线之上,并且它们表明有做多的潜力。
2)然后我想知道在移动平均线交叉时,移动平均线被 "扇开 "的确切条形(使用时间)。
3) 如果1和2是真实的,我就等待任何一个条形回落(在多头头寸的情况下)并触及21 EMA。
4) 从第一个条形图(MA交叉和扇形)到现在触及21 EMA的条形图--我想要一个挂单 或在市场交易中置于这个范围(1和3)的高点之上。
5) 如果在触发订单之前,价格在任何时候收于60 EMA之下 - 那么订单将被取消。
这显然不是所有的代码,但这是让我头疼的主要部分。请用"<<<<<<<<<<<<<"检查代码。这些是我感到困惑的地方。
我真的需要别人的帮助--这将是非常感激的
请先谢谢我。