[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 584

 
Ekburg:

而这种情况并没有帮助...

那我就不知道了。 你必须看一遍代码,不仅是函数,还有整个程序,插入错误检查,打印变量值和最后的错误,并在代码中寻找特定的错误位置。当我调试自己的程序时,如果它们相当大(大约1000行),有时需要花费数周时间,即比我写程序时花费更多时间。
 

大家好!

我在看教科书上的一个例子。我搞不清楚下面这个条件是什么功能。

ObjectSet(His_Name,OBJPROP_RAY,  false);  

我已经附上了自己的代码。专家顾问为最后的n个条形图着色。

请帮助我理解它。

附加的文件:
strings.mq4  7 kb
 
rigonich:


void,int,bool在初始化函数前面,表示变量的类型,其值由函数返回给程序,以便程序可以继续使用它。void 表示函数不返回任何值(如果函数的结果是,例如,关闭或打开订单,或者改变全局变量的值,它不应该返回值,因为它

至于其他语言,有一个英语版本的论坛语言只是一套规则,在某种语言中,物体和现象有通用的名称。 如果你使用不通用的名称,但你喜欢的名称,你将不会被理解。


我想我得到了它:)) 谢谢你:))
 
Sergstuddek:
EA工作的本质很简单:在某个时间(01.00至10.00)确定最低和最高价格,并把挂单


我已经看过你的代码,我不知道该说什么。正如TarasBY 在上面所说的,在里面说什么是对的比较容易

正如我在上面告诉你的 -- Seconds(),Minute(),Hour()函数返回服务器启动时间,在这个条件下,如果(Hour()==10),如果你没有在10点钟启动你的专家顾问,你的函数将无法工作。你一直都有这样的条件。仔细阅读帮助中的功能描述。

2.如果(TIMECLOSEHIGH19>TIMEOPENLOW19)和如果(TIMECLOSELOW19<TIMEOPENHIGH19)--这些是永远有效的条件。

3.不要在一个程序中写3或4个几乎相同的函数,只做一个函数,并在调用时向它传递所需的参数。 这不是一个错误,但它使你的代码繁琐,难以阅读。

4)使用任何,但总是相同的语法字符排列系统(空格、制表符、换行符、括号),否则你会混淆自己,别人也会感到困惑。

现在已经够了,把它修好,然后我们再看。

 
Pacman:

大家好!

我在看教科书上的一个例子。我搞不清楚下面这个条件是什么功能。

我已经附上了自己的代码。专家顾问为最后的n个条形图着色。

请帮助我理解它。


doubleObjectGet( string name, int prop_id)
该函数返回指定对象属性的值。调用GetLastError()来获取错误信息。
参见 ObjectSet()
参数。
名称 - 物体名称。
prop_id - 对象属性标识符。可以是对象属性列表中的 任何数值。
 
rigonich:


我看了你的代码,我不知道该说什么。正如TarasBY 在上面所说的,在里面说什么是对的比较容易

正如我在上面告诉你的 -- Seconds(),Minute(),Hour()函数返回服务器启动时间,在这个条件下,如果(Hour()==10),如果你没有在10点钟启动你的专家顾问,你的函数将无法工作。你一直都有这样的条件。仔细阅读帮助中的功能描述。

2.如果(TIMECLOSEHIGH19>TIMEOPENLOW19)和如果(TIMECLOSELOW19<TIMEOPENHIGH19)--这些是永远有效的条件。

3.不要在一个程序中写3或4个几乎相同的函数,只做一个函数,并在调用时向它传递所需的参数。 这不是一个错误,但它使你的代码繁琐,难以阅读。

4)使用任何,但总是相同的语法字符排列系统(空格、制表符、换行符、括号),否则你会混淆自己,别人也会感到困惑。

就目前而言,这已经足够了,把它修好,然后我们再看。

你应该得到一座纪念碑!帮助 "明天的程序员 "的最大问题是,他不能意识到,甚至不能解释 "他想要什么?",因为不可能同时得到kolbak-insert-feel!!!!。:)))
 
TarasBY:
你现在应该有一座属于自己的纪念碑了!帮助 "明天的程序员 "的最大问题是,他无法意识到,甚至无法解释 "他想要什么?",因为他不可能同时得到kolbak-insert-perk!:)))


正如Kisa Sparrowmaninov常说的那样。
 
rigonich:
doubleObjectGet( string name, int prop_id)
该函数返回指定对象属性的值。你需要调用GetLastError()来获得错误信息。
参见 ObjectSet()
参数。

这一切对我来说都很清楚。但是,这个代码部分执行的具体功能是什么呢?
 ObjectSet(    His_Name, OBJPROP_RAY,   false); // Луч
 

以下是我已经写好的内容。

-------------------------------------------

int start()

{

购买条件。

购买本身。

和修改

return(0);

}

-----------------------------------------

问题是,现在我需要输入新的条件,关闭条件,然后关闭自己,我的EA开始无限地修改(停止和采取是固定的,但每一个tick 都会弹出关于成功修改的信息)。

现在我怎样才能在这个开始里面创建一个循环,以获得新的条件和关闭,这样EA的第一部分就不会受到影响,直到它完全关闭?

 
rigonich:

那我就不知道了。 你需要查看代码,不仅是函数的代码,而且是整个程序的代码,沿途检查错误,打印变量值和最后的错误,并在代码中寻找具体的错误位置。当我调试自己的程序时,如果它们相当大(大约1000行),有时要花上几周时间,也就是说,比编写程序的时间还要长。


这里没有什么问题,在没有这样的函数时,一切都像时钟一样工作!现在也是如此,但修改时的错误发生在函数本身。

我有一个想法,也许这个错误的出现是因为修改函数位于用户函数中,而不是start()的主体中?