新手的冒险 - 页 7 123456789101112 新评论 [删除] 2009.06.23 10:08 #61 niko: 致CB。嘿,高空飞人!我在蒂姆的任务中做了所有能做的事情,因此决定开始更详细地查看你的代码。我对蒂姆的任务做了我能做的一切,因此决定开始更详细地查看你的代码。我浏览了你的代码,试图理解并修复其中的错误。我设法把错误减少到只有字符串fnGenerateSignal()的'不平衡的小括号'。我不知道为什么它在这种情况下说不平衡。像往常一样,我很感谢你对我的代码进展的看法!请记住,仍然有很多问题需要解决。请记住,我仍然有很多不明白的地方,甚至是非常基本的东西。 请看注释。 注意到以下几点。 - 你在声明函数 时希望将变量作为参数传给它们,但实际上却没有在函数调用中传给它们--所以我要求你将变量移到最上面的块中,这样它们就可以在你的所有函数中使用了--现在让我们尽量保持简单。 - 你似乎认为你必须把你的函数的名字也声明为一个变量。下面是如何使用函数,将变量传入和传出。 要声明。 int abcdef(int x, string s) //意味着名称为abcdef的函数接受一个整数和一个字符串的输入,并返回一个整数作为其输出(在本例中是0或9)。 { 该函数对x和s做一些处理 如果(某些条件) 返回(9)。 否则 返回(0)。 } 而要调用。 ... myResponse = abcdef(myInteger, myString)。 如果(myResponse == 9) { blah 附加的文件: nkpowithcb_1yv2cannotatedjbyxcb.mq4 5 kb 完整的MQL新手手册 KimIV的有用功能 如何准备 MetaTrader 5 报价用于其他应用程序 Niko 2009.06.23 12:31 #62 嘿,CB。 谢谢你。这是我想不明白的地方,你让我非常清楚。我想我现在是在正确的路线上。 CB,问题1。 bool fnOrderDuplicate() { iDuplicateOrders=0 // CB不应该将iDuplicateOrders声明为int或double? iOrders = OrdersTotal()-1 //在你的帮助下我现在明白了,这是在调用OrdersTotal函数。但同样,iOrders不应该被声明为一个变量吗? CB,question2: int fnTrade() //为什么不是 "int fnTrade(string sSignal)",因为我们在函数中使用sSignal。? { if(sSignal=="OP_BUY") ... CB,quesytion3: 你让我去掉代码末尾的return(0)和}。但这意味着Start()不会以典型的'return(0)和括号关闭,因为所有的前括号(从我检查的结果来看)都是我们设计的特定函数的打开和关闭。? adventures of a newbie 关于MT4自带的EA--Moving Average问题 KimIV的有用功能 [删除] 2009.06.23 14:47 #63 niko: 嘿,CB。谢谢你。这是我搞不清楚的地方,你让我非常清楚。我想我现在是在正确的路线上。 CB,问题1。bool fnOrderDuplicate(){iDuplicateOrders=0 // CB不应该将iDuplicateOrders声明为int或double?iOrders = OrdersTotal()-1 //在你的帮助下我现在明白了,这是在调用OrdersTotal函数。但同样,iOrders不应该被声明为一个变量吗? CB,question2:int fnTrade() //为什么不是 "int fnTrade(string sSignal)",因为我们在函数中使用sSignal。?{ if(sSignal=="OP_BUY")...CB,quesytion3:你让我去掉代码末尾的return(0)和}。但这意味着Start()不会以典型的'return(0)和括号关闭,因为所有的前括号(从我检查的结果来看)都是我们设计的特定函数的打开和关闭。? Q1:这两个变量都是定义的。看看我建议你移到你定义externs的部分的变量。这将自动使它们对所有函数 可用。 Q2:变量sSignal,如果在所有函数之外声明,那么所有函数都可以使用,而不需要在函数调用中明确传递它。 Q3: 啊--现在我明白你的误解了。我想知道你为什么把返回语句和大括号放在那里。我对 fnTrade() 语句的评论已经照顾到了这一点。你会注意到我要求你在那里添加一个返回调用和封闭括号。原因是你在start()函数代码块中(错误地)声明了你的所有函数。 CB wilsonts 2009.06.23 14:54 #64 niko wrote>> 嘿,蒂姆。 我做了你要求我做的代码的部分。谢谢你对我的问题提供了详细的答案,并在整个代码中写了很多评论,帮助我理清思路。我开始明白事情是如何拼凑起来的,如何正确使用数组和调用特定函数(以及全局变量和局部变量的作用)。 我附上了我们代码的最新版本。 有一个问题,为什么我们没有让EntryRules函数包含所有的东西(包括标志)来给我们一个买入/卖出的条件,而是在后来用标志来调用它,以做出进场的决定,这有什么原因吗? 你好,尼克 我整理了代码中的一些东西,希望能回答你的问题。EntryFunction现在已经完成了。你只需要像我在代码中指出的那样,从开始(主)函数中调用它,并将所需的参数传给它,如图所示。我希望这只是几分钟的工作,然后你就可以开始编译和测试了。我希望你会遇到一些小错误,但希望没有什么大问题。 编译完成后,尝试在测试器中运行EA,并查看日志文件,看看它是否出现了你在这个阶段所期望的情况。你应该能够看到每个货币对的买入和卖出信号。 我想说,在这一点上,你的代码已经完成了大约75%。 此后的下一步是编写另一个函数,检查给定货币对和交易方向的未结订单。 我建议看一下MT4文档中的交易函数。OrdersTotal(), OrderSelect(), Order Symbol() & OrderType()看起来是这项任务的候选函数。 至于你提出的让 EntryRules 函数包含所有内容(包括标志)的问题,我看不出有什么理由。你为什么不试着修改EntryRules函数呢? 我建议你在编译、运行和测试了你已经做的事情之后再做这件事。 谢谢 蒂姆 附加的文件: nkpowithmtim_1v2_23june09..mq4 36 kb Niko 2009.06.23 15:27 #65 CB:谢谢你,这对我来说有助于进一步澄清事情。出于某种原因,我以为所有的东西都必须在启动函数中。 问题是。我们不应该在启动函数中声明EMA,因为我们想让它们在每一个刻度 上计算/更新? Niko 2009.06.23 15:29 #66 嗨,蒂姆:再次感谢你的帮助。今天晚上一下班,我就会在我这边进行工作。与你和CB合作,我现在对如何把事情放在一起有了更多的想法,并开始更灵活地考虑这一切。 [删除] 2009.06.23 17:10 #67 niko: CB:谢谢你,这对我来说有助于进一步澄清事情。出于某种原因,我以为所有的东西都必须在启动函数中。 问题是。我们不应该在启动函数中声明EMA,因为我们想让它们在每一个刻度上都得到计算/更新? 如果你在一个函数 中声明一个变量,它只能在该函数中使用。如果你在所有的函数之外声明它,它对所有的函数都是可用的。因此,你可以在顶部声明ema变量,然后在起始函数中对它们进行计算。 CB Niko 2009.06.23 17:15 #68 cloudbreaker wrote>> 如果你在一个函数中声明一个变量,它只在该函数中可用。如果你在所有函数之外声明它,它对所有函数都是可用的。因此,你可以在顶部声明EMA变量,然后在起始函数中对其进行数学运算。 CB 谢谢你CB,我现在明白了! Niko 2009.07.02 19:49 #69 嗨,蒂姆。 我现在从土耳其回来了。我在库萨达斯度过了一段美妙的时光,真的不想离开。土耳其人比英国人要友好得多。我在那里有家的感觉,尽管我以前从未去过那里。 我花了5个小时左右的时间来升级我们正在设计的代码。我把它附在后面。 关键的修正是。 1.我创建了一个订单计数函数,并在start函数中调用它。我预计这里面会有很多错误,因为有些地方我还是不明白(例如:如何确保它跟随[c]循环,以便它只对每个货币对起 作用)。 2.我试图纠正代码中关于currencySymbol与currencySym的名称,因为我们在中途改变了名称。但这可能会被混淆。 3.3.我在start函数中调用了EntryRules函数。 如果你能纠正这些大大小小的错误,我将非常感激,如果你继续介绍//为什么旧的代码是错误的,评论,这有助于我纠正我的逻辑思维。 一如既往地热切期待您的修正! 附加的文件: nkpowithmtim_1v4l2mjulyy09.mq4 39 kb Niko 2009.07.05 12:07 #70 嘿,CB。 我想蒂姆现在正在度假,因为我已经好几天没有听到他的消息了。因此,我继续使用你的代码,因为这将有助于我的交易(因为我现在是手动交易策略,这意味着要早早起床,等等)。我按照你的要求修改了所有的代码,但由于某些原因,它仍然返回一个错误(这次是与"=="有关,非常奇怪)。 另一件事是我注意到启动函数 没有关闭。所以我在开始()内的第一个函数后添加了"}",如果我们不这样做,代码会在随后的函数字符串fnGenerateSignal()中产生错误(说该函数的定义是意外的)。 谢谢你一如既往的支持。我期待着你的评论/修正! 尼克 附加的文件: nkpowithcb_1v5july05.mq4 5 kb 123456789101112 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
致CB。
嘿,高空飞人!我在蒂姆的任务中做了所有能做的事情,因此决定开始更详细地查看你的代码。我对蒂姆的任务做了我能做的一切,因此决定开始更详细地查看你的代码。
我浏览了你的代码,试图理解并修复其中的错误。我设法把错误减少到只有字符串fnGenerateSignal()的'不平衡的小括号'。我不知道为什么它在这种情况下说不平衡。
像往常一样,我很感谢你对我的代码进展的看法!请记住,仍然有很多问题需要解决。请记住,我仍然有很多不明白的地方,甚至是非常基本的东西。
请看注释。
注意到以下几点。
- 你在声明函数 时希望将变量作为参数传给它们,但实际上却没有在函数调用中传给它们--所以我要求你将变量移到最上面的块中,这样它们就可以在你的所有函数中使用了--现在让我们尽量保持简单。
- 你似乎认为你必须把你的函数的名字也声明为一个变量。下面是如何使用函数,将变量传入和传出。
要声明。
int abcdef(int x, string s) //意味着名称为abcdef的函数接受一个整数和一个字符串的输入,并返回一个整数作为其输出(在本例中是0或9)。
{
该函数对x和s做一些处理
如果(某些条件)
返回(9)。
否则
返回(0)。
}
而要调用。
...
myResponse = abcdef(myInteger, myString)。
如果(myResponse == 9)
{
blah
嘿,CB。
谢谢你。这是我想不明白的地方,你让我非常清楚。我想我现在是在正确的路线上。
CB,问题1。
bool fnOrderDuplicate()
{
iDuplicateOrders=0 // CB不应该将iDuplicateOrders声明为int或double?
iOrders = OrdersTotal()-1 //在你的帮助下我现在明白了,这是在调用OrdersTotal函数。但同样,iOrders不应该被声明为一个变量吗?
CB,question2:
int fnTrade() //为什么不是 "int fnTrade(string sSignal)",因为我们在函数中使用sSignal。?
{ if(sSignal=="OP_BUY")
...
CB,quesytion3:
你让我去掉代码末尾的return(0)和}。但这意味着Start()不会以典型的'return(0)和括号关闭,因为所有的前括号(从我检查的结果来看)都是我们设计的特定函数的打开和关闭。?
嘿,CB。
谢谢你。这是我搞不清楚的地方,你让我非常清楚。我想我现在是在正确的路线上。
CB,问题1。
bool fnOrderDuplicate()
{
iDuplicateOrders=0 // CB不应该将iDuplicateOrders声明为int或double?
iOrders = OrdersTotal()-1 //在你的帮助下我现在明白了,这是在调用OrdersTotal函数。但同样,iOrders不应该被声明为一个变量吗?
CB,question2:
int fnTrade() //为什么不是 "int fnTrade(string sSignal)",因为我们在函数中使用sSignal。?
{ if(sSignal=="OP_BUY")
...
CB,quesytion3:
你让我去掉代码末尾的return(0)和}。但这意味着Start()不会以典型的'return(0)和括号关闭,因为所有的前括号(从我检查的结果来看)都是我们设计的特定函数的打开和关闭。?
Q1:这两个变量都是定义的。看看我建议你移到你定义externs的部分的变量。这将自动使它们对所有函数 可用。
Q2:变量sSignal,如果在所有函数之外声明,那么所有函数都可以使用,而不需要在函数调用中明确传递它。
Q3: 啊--现在我明白你的误解了。我想知道你为什么把返回语句和大括号放在那里。我对 fnTrade() 语句的评论已经照顾到了这一点。你会注意到我要求你在那里添加一个返回调用和封闭括号。原因是你在start()函数代码块中(错误地)声明了你的所有函数。
CB
嘿,蒂姆。
我做了你要求我做的代码的部分。谢谢你对我的问题提供了详细的答案,并在整个代码中写了很多评论,帮助我理清思路。我开始明白事情是如何拼凑起来的,如何正确使用数组和调用特定函数(以及全局变量和局部变量的作用)。
我附上了我们代码的最新版本。
有一个问题,为什么我们没有让EntryRules函数包含所有的东西(包括标志)来给我们一个买入/卖出的条件,而是在后来用标志来调用它,以做出进场的决定,这有什么原因吗?
你好,尼克
我整理了代码中的一些东西,希望能回答你的问题。EntryFunction现在已经完成了。你只需要像我在代码中指出的那样,从开始(主)函数中调用它,并将所需的参数传给它,如图所示。我希望这只是几分钟的工作,然后你就可以开始编译和测试了。我希望你会遇到一些小错误,但希望没有什么大问题。
编译完成后,尝试在测试器中运行EA,并查看日志文件,看看它是否出现了你在这个阶段所期望的情况。你应该能够看到每个货币对的买入和卖出信号。
我想说,在这一点上,你的代码已经完成了大约75%。
此后的下一步是编写另一个函数,检查给定货币对和交易方向的未结订单。
我建议看一下MT4文档中的交易函数。OrdersTotal(), OrderSelect(), Order Symbol() & OrderType()看起来是这项任务的候选函数。
至于你提出的让 EntryRules 函数包含所有内容(包括标志)的问题,我看不出有什么理由。你为什么不试着修改EntryRules函数呢?
我建议你在编译、运行和测试了你已经做的事情之后再做这件事。
谢谢
蒂姆
CB:谢谢你,这对我来说有助于进一步澄清事情。出于某种原因,我以为所有的东西都必须在启动函数中。
问题是。我们不应该在启动函数中声明EMA,因为我们想让它们在每一个刻度 上计算/更新?
嗨,蒂姆:再次感谢你的帮助。今天晚上一下班,我就会在我这边进行工作。与你和CB合作,我现在对如何把事情放在一起有了更多的想法,并开始更灵活地考虑这一切。
CB:谢谢你,这对我来说有助于进一步澄清事情。出于某种原因,我以为所有的东西都必须在启动函数中。
问题是。我们不应该在启动函数中声明EMA,因为我们想让它们在每一个刻度上都得到计算/更新?
如果你在一个函数 中声明一个变量,它只能在该函数中使用。如果你在所有的函数之外声明它,它对所有的函数都是可用的。因此,你可以在顶部声明ema变量,然后在起始函数中对它们进行计算。
CB
如果你在一个函数中声明一个变量,它只在该函数中可用。如果你在所有函数之外声明它,它对所有函数都是可用的。因此,你可以在顶部声明EMA变量,然后在起始函数中对其进行数学运算。
CB
谢谢你CB,我现在明白了!
嗨,蒂姆。
我现在从土耳其回来了。我在库萨达斯度过了一段美妙的时光,真的不想离开。土耳其人比英国人要友好得多。我在那里有家的感觉,尽管我以前从未去过那里。
我花了5个小时左右的时间来升级我们正在设计的代码。我把它附在后面。
关键的修正是。
1.我创建了一个订单计数函数,并在start函数中调用它。我预计这里面会有很多错误,因为有些地方我还是不明白(例如:如何确保它跟随[c]循环,以便它只对每个货币对起 作用)。
2.我试图纠正代码中关于currencySymbol与currencySym的名称,因为我们在中途改变了名称。但这可能会被混淆。
3.3.我在start函数中调用了EntryRules函数。
如果你能纠正这些大大小小的错误,我将非常感激,如果你继续介绍//为什么旧的代码是错误的,评论,这有助于我纠正我的逻辑思维。
一如既往地热切期待您的修正!
嘿,CB。
我想蒂姆现在正在度假,因为我已经好几天没有听到他的消息了。因此,我继续使用你的代码,因为这将有助于我的交易(因为我现在是手动交易策略,这意味着要早早起床,等等)。我按照你的要求修改了所有的代码,但由于某些原因,它仍然返回一个错误(这次是与"=="有关,非常奇怪)。
另一件事是我注意到启动函数 没有关闭。所以我在开始()内的第一个函数后添加了"}",如果我们不这样做,代码会在随后的函数字符串fnGenerateSignal()中产生错误(说该函数的定义是意外的)。
谢谢你一如既往的支持。我期待着你的评论/修正!
尼克