OOP与程序化编程 - 页 37 1...303132333435363738394041424344...48 新评论 СанСаныч Фоменко 2017.08.15 18:09 #361 Andrei:一个类只有内部变量,没有输入或输出变量...你在哪里看到过这样一个与外界没有接触、在自己的汁液中沸腾的物体在编程中的用途?+100 Andrey Miguzov 2017.08.15 18:15 #362 这场讨论让我想起了他们最近播放的一段视频 :) Georgiy Merts 2017.08.15 18:16 #363 Andrei:该类只有内部变量,没有输入和输出...你在哪里看到过这样的物体在编程中的用途,它与外界没有任何接触,在自己的汁液中烹饪?该类有一个接口,通过该接口与外部世界进行互动。它允许我们切断所有 "不必要 "的东西,这些东西不打算用于外部区块。 例如,在我的交易处理器中,我有一些变量,其中一些用于MT4,另一些用于MT5,还有一些用于两个平台。但所有这些变量对我的TS的任何部分都是绝对不必要的。恭敬地说,他们没有机会接触到它们。TS的所有部分都收到了交易处理器的虚拟接口,其中只定义了TS操作所需的功能,而所有不相关的东西,所有依赖平台的和 "特定交易 "的功能都被删除。 这与交易头寸是一样的--TS的某些部分不能直接接触到交易头寸。他们只能得到一个虚拟接口,允许计算开放的交易组件的数量,以及每个组件的数据。但是TS甚至不知道它在处理什么--无论是MT4订单还是MT5头寸。所有这些都对她隐瞒了。TS不应该访问 用于处理MT4订单或MT5头寸的变量,而它没有这样做。 СанСаныч Фоменко 2017.08.15 18:20 #364 George Merts:该类有一个接口,通过该接口与外部世界进行互动。它允许你切断一切不用于外部区块的 "多余的"。 在这里,特别是在我的交易处理器中--我有一些变量,其中一些用于MT4,另一些用于MT5,还有一些用于两个平台。但所有这些变量对我的TS的任何部分都是绝对不必要的。恭敬地说,他们没有机会接触到它们。TS的所有部分都收到交易处理器的虚拟接口,其中只定义了TS操作所需的功能,所有不必要的东西,所有平台依赖和 "特定交易",都被删除。 让我们非常具体地举出一个非常明确的例子。1.在输入端有套管2.输出端有一个买/卖指令。3.输入通过两个擦边球的交叉点转换为输出。它们之间的OOP是什么,为什么? Ihor Herasko 2017.08.15 18:21 #365 СанСаныч Фоменко: 向元引解释一下:为什么他们要为终端、为语言写大量的手册,一般来说,这种堆积如山的软件产品的文档在哪里,例如Cp...事实上,是否有任何软件产品没有文档?很奇怪,你没有看到这一点。不幸的是,你又把事情搞混了。一个程序的手册不是文件。在上个世纪,他们曾经维护过文件,并遵守国家标准。现在我们不需要这一切了。现在,我们只有ToR。现在的文档由测试案例和类接口组成。当然,类的命名方式是,仅凭它的名字就可以明确它的作用和用途。 СанСаныч Фоменко 2017.08.15 18:31 #366 Ihor Herasko: 不幸的是,你又一次混淆了这些术语。方案手册不是文件。在上个世纪,有文件,而且他们遵循GOST等规定。现在这一切都没有必要了。剩下的就是责任书了。现在的文档由测试案例和类接口组成。当然,类的命名方式也是如此,我们可以通过它们的名字了解它们的作用,以及它们的用途。文件被保存在上个世纪,我们遵守国家标准等等。现在这一切都没有必要了。我绝对同意你的观点,因为他们不写任何严肃的东西。一直以来都有 "ToR"。但这种简单的程序,其算法可以完全在TT中定义,在上个世纪没有人写过,即使现在也没有认真的人写过。在开发编译器时,"测试用例和类接口 "是怎么回事? 在进行数学算法编程时?PS。以前有一个关于perls的评分标准。这是在里面。程序手册不是文件。 Georgiy Merts 2017.08.15 18:35 #367 СанСаныч Фоменко: 让我们具体地、非常清楚地讲一个例子。1.输入是一个商2.输出是一个买入/卖出的命令。3.输入通过两个擦边球的交叉点转换为输出。它们之间的OOP是什么,为什么?这很简单。 有一个输入发生器。它要求专家顾问提供数据提供者的接口,交易头寸的接口和交易处理器的接口。 然后从数据提供者那里要求提供两个面具接口。 当OnTick()被调用时--同样的函数从输入发生器被调用。输入发生器看着挥舞的界面,比较其过去的值。如果它检测到一个交叉点,它就会查看交易位置界面。如果它看到我们不在位置上 - 它调用交易处理器接口的买入或卖出功能。如果它看到有一个头寸,如果这个头寸是在所需的方向--我们什么都不做,如果是相反的--我们在交易界面中调用平仓 功能,然后买入或卖出。 您应该注意,生成器不能访问任何变量,既不能用于计算擦边球,也不能用于获得交易头寸,更不能用于在MT4中开立订单或在MT5中开立头寸。日期提供者只知道被要求的湿巾的情况。他在每次打勾时都会重新计算并更新它们。甚至没有其他人知道这件事。一个贸易处理者--专门完成通过界面传给他的指令,甚至不知道这些指令来自谁。专家顾问--在每一个刻度上更新交易位置,并将其提供给所要求的界面,而不研究谁需要它以及这个区块内有什么。所有区块都是分离的,并完全通过预定义的接口进行通信。 Maxim Kuznetsov 2017.08.15 18:38 #368 СанСаныч Фоменко: 让我们具体地、非常清楚地讲一个例子。1.输入是一个商2.输出是一个买入/卖出的命令。3.输入通过两个擦边球的交叉点转换为输出。它们之间的OOP是什么,为什么?/// применение ООП для элементарных задач (фактически весь код)OnInit(){Series FAST_MA=MA(...);Series SLOW_MA=MA(...);OnCrossUp(FAST_MA,SLOW_MA,Buy);OnCrossDn(FAST_MA,SLOW_MA,Sell);}但它本身就是在已制定好的库中的OOP--这样做是为了写得简单易行,同时也是为了使一切都能得到调试。有 "报价的来源 "和 "订单的执行者"、"时间序列"、"指标 "和许多其他东西的接口......但这个简短的代码是为真实市场的严格条件准备的,有所有的故障和讨厌的事情。通过一个简单的动作,你可以采取一个任意的商数(合成)或在另一个符号上执行......或只是命令另一个专家顾问(这就是OOP的优势,里面的复杂性,应用的问题需要很少的努力)。 СанСаныч Фоменко 2017.08.15 18:39 #369 George Merts:这很简单。 有一个输入发生器。它--向专家顾问请求数据提供者的接口,交易头寸的接口和交易处理器的接口。 然后,向数据提供者请求两个马车的接口。 当OnTick()被调用时--同样的函数从输入发生器被调用。输入发生器看着挥舞的界面,比较其过去的值。如果它检测到一个交叉点,它就会查看交易位置界面。如果它看到我们不在位置上 - 它调用交易处理器接口的买入或卖出功能。如果它看到有一个头寸,如果这个头寸是在所需的方向--我们什么都不做,如果是相反的--我们在交易界面中调用平仓 功能,然后买入或卖出。 您应该注意,生成器不能访问任何变量,既不能用于计算擦边球,也不能用于获得交易头寸,更不能用于在MT4中开立订单或在MT5中开立头寸。日期提供者只知道被要求的湿巾的情况。他在每次打勾时都会重新计算并更新它们。甚至没有其他人知道这件事。一个贸易处理者--专门完成通过界面传给他的指令,甚至不知道这些指令来自谁。专家顾问--在每一个刻度上更新交易位置,并将其提供给所要求的界面,而不研究谁需要它以及这个区块内有什么。所有的区块都是分开的,只通过预定的接口进行通信。惊人的!我在想:在现代编程中,是否有其他的可能性来更突然地混淆蛋级问题? СанСаныч Фоменко 2017.08.15 18:42 #370 Maxim Kuznetsov:/// применение ООП для элементарных задач (фактически весь код)OnInit(){Series FAST_MA=MA(...);Series SLOW_MA=MA(...);OnCrossUp(FAST_MA,SLOW_MA,Buy);OnCrossDn(FAST_MA,SLOW_MA,Sell);}但是OOP本身就在开发的库里面--它是为了方便简单地编写,一切都在这个时候进行微调。有 "报价源 "和 "订单执行者 "接口,"时间序列","指标 "和许多其他的东西......但这个简短的代码已经准备好应对艰难的真实市场条件,以及所有的故障和讨厌的东西。通过一个简单的动作,你可以采取一个任意的商数(合成)或在另一个符号上执行......或只是命令另一个专家顾问(这就是OOP的优势,里面的复杂性,应用的问题需要很少的努力)。 我的OnInit()看起来也差不多--有十几行...那么? 1...303132333435363738394041424344...48 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
一个类只有内部变量,没有输入或输出变量...你在哪里看到过这样一个与外界没有接触、在自己的汁液中沸腾的物体在编程中的用途?
+100
这场讨论让我想起了他们最近播放的一段视频 :)
该类只有内部变量,没有输入和输出...你在哪里看到过这样的物体在编程中的用途,它与外界没有任何接触,在自己的汁液中烹饪?
该类有一个接口,通过该接口与外部世界进行互动。它允许我们切断所有 "不必要 "的东西,这些东西不打算用于外部区块。
例如,在我的交易处理器中,我有一些变量,其中一些用于MT4,另一些用于MT5,还有一些用于两个平台。但所有这些变量对我的TS的任何部分都是绝对不必要的。恭敬地说,他们没有机会接触到它们。TS的所有部分都收到了交易处理器的虚拟接口,其中只定义了TS操作所需的功能,而所有不相关的东西,所有依赖平台的和 "特定交易 "的功能都被删除。
这与交易头寸是一样的--TS的某些部分不能直接接触到交易头寸。他们只能得到一个虚拟接口,允许计算开放的交易组件的数量,以及每个组件的数据。但是TS甚至不知道它在处理什么--无论是MT4订单还是MT5头寸。所有这些都对她隐瞒了。TS不应该访问 用于处理MT4订单或MT5头寸的变量,而它没有这样做。
该类有一个接口,通过该接口与外部世界进行互动。它允许你切断一切不用于外部区块的 "多余的"。
在这里,特别是在我的交易处理器中--我有一些变量,其中一些用于MT4,另一些用于MT5,还有一些用于两个平台。但所有这些变量对我的TS的任何部分都是绝对不必要的。恭敬地说,他们没有机会接触到它们。TS的所有部分都收到交易处理器的虚拟接口,其中只定义了TS操作所需的功能,所有不必要的东西,所有平台依赖和 "特定交易",都被删除。
让我们非常具体地举出一个非常明确的例子。
1.在输入端有套管
2.输出端有一个买/卖指令。
3.输入通过两个擦边球的交叉点转换为输出。
它们之间的OOP是什么,为什么?
向元引解释一下:为什么他们要为终端、为语言写大量的手册,一般来说,这种堆积如山的软件产品的文档在哪里,例如Cp...事实上,是否有任何软件产品没有文档?很奇怪,你没有看到这一点。
不幸的是,你又把事情搞混了。一个程序的手册不是文件。在上个世纪,他们曾经维护过文件,并遵守国家标准。现在我们不需要这一切了。现在,我们只有ToR。现在的文档由测试案例和类接口组成。当然,类的命名方式是,仅凭它的名字就可以明确它的作用和用途。
不幸的是,你又一次混淆了这些术语。方案手册不是文件。在上个世纪,有文件,而且他们遵循GOST等规定。现在这一切都没有必要了。剩下的就是责任书了。现在的文档由测试案例和类接口组成。当然,类的命名方式也是如此,我们可以通过它们的名字了解它们的作用,以及它们的用途。
文件被保存在上个世纪,我们遵守国家标准等等。现在这一切都没有必要了。
我绝对同意你的观点,因为他们不写任何严肃的东西。
一直以来都有 "ToR"。但这种简单的程序,其算法可以完全在TT中定义,在上个世纪没有人写过,即使现在也没有认真的人写过。
在开发编译器时,"测试用例和类接口 "是怎么回事? 在进行数学算法编程时?
PS。
以前有一个关于perls的评分标准。
这是在里面。
程序手册不是文件。
让我们具体地、非常清楚地讲一个例子。
1.输入是一个商
2.输出是一个买入/卖出的命令。
3.输入通过两个擦边球的交叉点转换为输出。
它们之间的OOP是什么,为什么?
这很简单。
有一个输入发生器。它要求专家顾问提供数据提供者的接口,交易头寸的接口和交易处理器的接口。 然后从数据提供者那里要求提供两个面具接口。
当OnTick()被调用时--同样的函数从输入发生器被调用。输入发生器看着挥舞的界面,比较其过去的值。如果它检测到一个交叉点,它就会查看交易位置界面。如果它看到我们不在位置上 - 它调用交易处理器接口的买入或卖出功能。如果它看到有一个头寸,如果这个头寸是在所需的方向--我们什么都不做,如果是相反的--我们在交易界面中调用平仓 功能,然后买入或卖出。
您应该注意,生成器不能访问任何变量,既不能用于计算擦边球,也不能用于获得交易头寸,更不能用于在MT4中开立订单或在MT5中开立头寸。日期提供者只知道被要求的湿巾的情况。他在每次打勾时都会重新计算并更新它们。甚至没有其他人知道这件事。一个贸易处理者--专门完成通过界面传给他的指令,甚至不知道这些指令来自谁。专家顾问--在每一个刻度上更新交易位置,并将其提供给所要求的界面,而不研究谁需要它以及这个区块内有什么。所有区块都是分离的,并完全通过预定义的接口进行通信。
让我们具体地、非常清楚地讲一个例子。
1.输入是一个商
2.输出是一个买入/卖出的命令。
3.输入通过两个擦边球的交叉点转换为输出。
它们之间的OOP是什么,为什么?
/// применение ООП для элементарных задач (фактически весь код)
OnInit(){
Series FAST_MA=MA(...);
Series SLOW_MA=MA(...);
OnCrossUp(FAST_MA,SLOW_MA,Buy);
OnCrossDn(FAST_MA,SLOW_MA,Sell);
}
但它本身就是在已制定好的库中的OOP--这样做是为了写得简单易行,同时也是为了使一切都能得到调试。有 "报价的来源 "和 "订单的执行者"、"时间序列"、"指标 "和许多其他东西的接口......但这个简短的代码是为真实市场的严格条件准备的,有所有的故障和讨厌的事情。
通过一个简单的动作,你可以采取一个任意的商数(合成)或在另一个符号上执行......或只是命令另一个专家顾问(这就是OOP的优势,里面的复杂性,应用的问题需要很少的努力)。
这很简单。
有一个输入发生器。它--向专家顾问请求数据提供者的接口,交易头寸的接口和交易处理器的接口。 然后,向数据提供者请求两个马车的接口。
当OnTick()被调用时--同样的函数从输入发生器被调用。输入发生器看着挥舞的界面,比较其过去的值。如果它检测到一个交叉点,它就会查看交易位置界面。如果它看到我们不在位置上 - 它调用交易处理器接口的买入或卖出功能。如果它看到有一个头寸,如果这个头寸是在所需的方向--我们什么都不做,如果是相反的--我们在交易界面中调用平仓 功能,然后买入或卖出。
您应该注意,生成器不能访问任何变量,既不能用于计算擦边球,也不能用于获得交易头寸,更不能用于在MT4中开立订单或在MT5中开立头寸。日期提供者只知道被要求的湿巾的情况。他在每次打勾时都会重新计算并更新它们。甚至没有其他人知道这件事。一个贸易处理者--专门完成通过界面传给他的指令,甚至不知道这些指令来自谁。专家顾问--在每一个刻度上更新交易位置,并将其提供给所要求的界面,而不研究谁需要它以及这个区块内有什么。所有的区块都是分开的,只通过预定的接口进行通信。
惊人的!
我在想:在现代编程中,是否有其他的可能性来更突然地混淆蛋级问题?
/// применение ООП для элементарных задач (фактически весь код)
OnInit(){
Series FAST_MA=MA(...);
Series SLOW_MA=MA(...);
OnCrossUp(FAST_MA,SLOW_MA,Buy);
OnCrossDn(FAST_MA,SLOW_MA,Sell);
}
但是OOP本身就在开发的库里面--它是为了方便简单地编写,一切都在这个时候进行微调。有 "报价源 "和 "订单执行者 "接口,"时间序列","指标 "和许多其他的东西......但这个简短的代码已经准备好应对艰难的真实市场条件,以及所有的故障和讨厌的东西。
通过一个简单的动作,你可以采取一个任意的商数(合成)或在另一个符号上执行......或只是命令另一个专家顾问(这就是OOP的优势,里面的复杂性,应用的问题需要很少的努力)。
我的OnInit()看起来也差不多--有十几行...
那么?