新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1384 1...137713781379138013811382138313841385138613871388138913901391...1953 新评论 Vitaly Muzichenko 2021.02.11 09:15 #13831 Mikhail Mishanin:如果我们把 "时间值 "换成新的时间和最后计算的时间之间的差异?也就是说,我们将知道有一个新的时间。 -从新的一天开始 -从新的一周开始 -或相差超过指定时间。 我不知道如何应用这个! 在截图中,翻转和价差扩大是在22-00,在大多数其他交易中是在00-00,它是1小时后-价差扩大。 我如何以编程方式找出翻转时间,而不将程序限制在输入参数的时间内? --- P.S. 这段代码表现良好,但条件是它必须在翻转前500点运行 bool CheckSpr(int _sp) { static int ts=0, res=0; static long tc=0; // Comment( res,"=",tc ); if(tc>500 && res*3<_sp) return(false); // если уже собрали 500 тиков и есть средний спред - смотрим на расширенный spr*3 tc++; ts += _sp; res =ts/tc; if(tc>LONG_MAX-1) { tc=0; ts=0; } // Comment( res,"=",tc ); if(tc<500) return(false); return(res>_sp?true:false); } Mikhail Mishanin 2021.02.11 09:34 #13832 Vitaly Muzichenko:我不知道如何应用这个!在截图中翻转和价差扩大在22-00,在大多数其他交易中在00-00,它是1小时后-价差扩大。我如何以编程方式找出翻转时间,而不将程序限制在输入参数中的时间?---P.S. 这段代码表现良好,但条件是在翻转前500点运行。 通过交易扩大价差的原因是交易时段 的开始,即大量订单的 "倾销 "处理,以及一切将如何(以什么价格)"结算 "的不确定性。交易会保险并扩大价差。你只需要把时间从交易时段的结束/开始推迟。 Vitaly Muzichenko 2021.02.11 09:36 #13833 Mikhail Mishanin:通过交易扩大价差的原因是交易时段 的开启,即大量订单被放置处理,因此不确定所有的东西将如何(以什么价格)"结算"。交易会保险并扩大价差。你只需要从交易时段的结束/开始时预留出时间。 是的,但它不在仪器规范中。 这就是晚上10点的翻身之处。 这是在00-00时的滚动。 Tretyakov Rostyslav 2021.02.11 09:40 #13834 Vitaly Muzichenko:是的,但它不在工具规范中。 TimeCurrent()-TimeGMT() Vitaly Muzichenko 2021.02.11 10:40 #13835 希望最终的版本能考虑到所有的因素 MqlDateTime dt; bool CheckSpr(int _sp) { TimeGMT(dt); static int ts=0, res=0; static long tc=0; if(dt.hour==22) return(false); tc++; ts += _sp; res =ts/tc; if(tc>LONG_MAX-1) { tc=0; ts=0; } // Comment( res,"=",tc ); if(tc<500) return(false); return(res>_sp?true:false); } Mikhail Mishanin 2021.02.11 11:22 #13836 Vitaly Muzichenko:希望最终版本能考虑到所有的 两个变量 datetime daLAST=0。 datetime daOLD=0。 在每个可以 "交易 "的函数中,即它可以获得 刻度的时间 daOLD =daLAST。 daLAST="滴答时间" 如果(daLAST - daOLD > "time gap") - 一个新的会话开始了,有一个时间间隔 { //保存、使用和取消这一点,只要你愿意 } Vitaly Muzichenko 2021.02.11 11:44 #13837 Mikhail Mishanin:两个变量datetime daLAST=0。datetime daOLD=0。在每个可以 "交易 "的函数中,即可以得到 tick的时间 daOLD =daLAST。 daLAST="滴答时间" 如果(daLAST - daOLD > "time gap") - 一个新的会话开始了,有一个时间间隔{//保存、使用和取消这一点,只要你愿意} 有一些货币对和困境,亚洲时段可能长达数分钟没有嘀嗒声,翻转时间为21-59至22-01,这比亚洲的嘀嗒声到达的时间要快。 Mikhail Mishanin 2021.02.11 12:23 #13838 Vitaly Muzichenko:有一些货币对和莳萝,在亚洲时段可能会有长达数分钟的时间没有嘀嗒声,滚动时间从21-59到22-01,即比亚洲的嘀嗒声到达的时间快。 那么又回到了原点。 目的是什么?跳过点差过大的交易- 对吗? 那么我们也许可以忽略时间而分析传播本身。 如果卖价-买价>"阈值" - 启用跟踪/积累。 如果Ask - Bid < "阈值" - 关掉它,或者也累积。 这样的 "牛 "似乎对我也很有用,我将收集这样的东西,它将收集统计数据...... 如果几分钟内没有新的刻度线,跳过交易中的第一个刻度线会更合理。 统计数据应收集在特定的对和莳萝上,因为任何 "曲率 "都可能在"-"和 "+"中发挥作用。 Vitaly Muzichenko 2021.02.11 13:04 #13839 Mikhail Mishanin:那我们就回到原点吧。目的是什么?跳过点差过大的交易- 对吗?那么我们也许可以忽略时间,而分析传播本身。如果卖价-买价>"阈值" - 启用跟踪/积累。如果Ask - Bid < "阈值" - 关掉它,或者也累积。这样的 "牛 "似乎对我也很有用,我将收集这样的东西,它将收集统计数据......如果几分钟内没有新的刻度线,跳过交易中的第一个刻度线会更合理。应该收集特定对和莳萝的统计数据,因为任何 "曲率 "都可能像"-"和 "+"一样发挥作用。 你所描述的一切使上面的代码,除了黄色--我认为它是多余的,不完全正确。不知为何从未见过,那个翻车的人是在其他时间,总是在同一个时间--格林尼治标准时间22点,虽然我可能搞错了。 但经常看到不同期限的滚动,有的5分钟,有的1分钟多一点。 --- 检查代码,也许会改变一些东西。 //+------------------------------------------------------------------+ void OnTick(void) { int sp = SymbolInfoInteger(Symbol(),SYMBOL_SPREAD); static int ts=0; if(CheckSpr(sp)) { // Здесь код отправки Comment( sp,"=",ts++,"=",res ); } else Comment( "false: ",sp,"=",ts++,"=",res ); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ MqlDateTime dt; int res=0; bool CheckSpr(int _sp) { TimeGMT(dt); static int ts=0; static long tc=0; if(dt.hour==22) return(false); tc++; ts += _sp; res =ts/tc; if(tc>LONG_MAX-1) { tc=0; ts=0; } // Comment( res,"=",tc ); if(tc<500) return(false); return(res>_sp?true:false); } Tretyakov Rostyslav 2021.02.11 14:11 #13840 Vitaly Muzichenko: 每个人的时间都是一样的--格林尼治标准时间晚上10点,尽管我可能是错的。 你没有错。 1...137713781379138013811382138313841385138613871388138913901391...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果我们把 "时间值 "换成新的时间和最后计算的时间之间的差异?
也就是说,我们将知道有一个新的时间。
-从新的一天开始
-从新的一周开始
-或相差超过指定时间。
我不知道如何应用这个!
在截图中,翻转和价差扩大是在22-00,在大多数其他交易中是在00-00,它是1小时后-价差扩大。
我如何以编程方式找出翻转时间,而不将程序限制在输入参数的时间内?
---
P.S. 这段代码表现良好,但条件是它必须在翻转前500点运行
我不知道如何应用这个!
在截图中翻转和价差扩大在22-00,在大多数其他交易中在00-00,它是1小时后-价差扩大。
我如何以编程方式找出翻转时间,而不将程序限制在输入参数中的时间?
---
P.S. 这段代码表现良好,但条件是在翻转前500点运行。
通过交易扩大价差的原因是交易时段 的开始,即大量订单的 "倾销 "处理,以及一切将如何(以什么价格)"结算 "的不确定性。交易会保险并扩大价差。你只需要把时间从交易时段的结束/开始推迟。
通过交易扩大价差的原因是交易时段 的开启,即大量订单被放置处理,因此不确定所有的东西将如何(以什么价格)"结算"。交易会保险并扩大价差。你只需要从交易时段的结束/开始时预留出时间。
是的,但它不在仪器规范中。
这就是晚上10点的翻身之处。
这是在00-00时的滚动。
是的,但它不在工具规范中。
希望最终的版本能考虑到所有的因素
希望最终版本能考虑到所有的
两个变量
datetime daLAST=0。
datetime daOLD=0。
在每个可以 "交易 "的函数中,即它可以获得 刻度的时间
daOLD =daLAST。
daLAST="滴答时间"
如果(daLAST - daOLD > "time gap") - 一个新的会话开始了,有一个时间间隔
{
//保存、使用和取消这一点,只要你愿意
}
两个变量
datetime daLAST=0。
datetime daOLD=0。
在每个可以 "交易 "的函数中,即可以得到 tick的时间
daOLD =daLAST。
daLAST="滴答时间"
如果(daLAST - daOLD > "time gap") - 一个新的会话开始了,有一个时间间隔
{
//保存、使用和取消这一点,只要你愿意
}
有一些货币对和困境,亚洲时段可能长达数分钟没有嘀嗒声,翻转时间为21-59至22-01,这比亚洲的嘀嗒声到达的时间要快。
有一些货币对和莳萝,在亚洲时段可能会有长达数分钟的时间没有嘀嗒声,滚动时间从21-59到22-01,即比亚洲的嘀嗒声到达的时间快。
那么又回到了原点。
目的是什么?跳过点差过大的交易- 对吗?
那么我们也许可以忽略时间而分析传播本身。
如果卖价-买价>"阈值" - 启用跟踪/积累。
如果Ask - Bid < "阈值" - 关掉它,或者也累积。
这样的 "牛 "似乎对我也很有用,我将收集这样的东西,它将收集统计数据......
如果几分钟内没有新的刻度线,跳过交易中的第一个刻度线会更合理。
统计数据应收集在特定的对和莳萝上,因为任何 "曲率 "都可能在"-"和 "+"中发挥作用。
那我们就回到原点吧。
目的是什么?跳过点差过大的交易- 对吗?
那么我们也许可以忽略时间,而分析传播本身。
如果卖价-买价>"阈值" - 启用跟踪/积累。
如果Ask - Bid < "阈值" - 关掉它,或者也累积。
这样的 "牛 "似乎对我也很有用,我将收集这样的东西,它将收集统计数据......
如果几分钟内没有新的刻度线,跳过交易中的第一个刻度线会更合理。
应该收集特定对和莳萝的统计数据,因为任何 "曲率 "都可能像"-"和 "+"一样发挥作用。
你所描述的一切使上面的代码,除了黄色--我认为它是多余的,不完全正确。不知为何从未见过,那个翻车的人是在其他时间,总是在同一个时间--格林尼治标准时间22点,虽然我可能搞错了。
但经常看到不同期限的滚动,有的5分钟,有的1分钟多一点。
---
检查代码,也许会改变一些东西。
每个人的时间都是一样的--格林尼治标准时间晚上10点,尽管我可能是错的。
你没有错。