对行政部门和当地居民的建议 - 页 6

 
Фьючерсные объемы для МТ:

我加入了这个问题 -- 第一个帖子中的代码有什么糟糕的地方?

关于OOP。不仅有大量的材料,而且有大量的材料。只是不在这个网站上。即使在这里也有一些。有些人只是太懒了,不愿意做适当的搜索和研究。

至少,它只在安装专家顾问 的电源上工作....
 
Vladimir Pastushak:
至少,它只对专家顾问所安装的符号起作用....。

不,代码是相当好的。只是你想从它那里得到一些东西,而它并不是为之设计的。

而这将是你的提案在总体上的最大问题。

许多事情可以用许多方式有效地写出来。不同的人以不同的方式评价任务和解决方案,以及评价其有效性的标准。

例如,在MT中,对我来说,拥有简单的代码比能够从通用的砖块中组装起来更重要。

 
Владимир:

不要担心。这 不是我的手艺。

如果我让你给我看一个写代码的例子,就说 "离时限结束还剩多少时间?"你百分之百保证会把我送进地狱

或到工作部门。这只是为了树立一个榜样!

这就是恐惧和不情愿的原因。但手指总是伸出来的。

你也可以说,大多数要求展示代码的人只是懒惰,他们懒得翻阅代码库来寻找 "距离时限结束还剩多少时间 "的代码。

暴露自己的懒惰并不有趣)

 

Владимир:

VOLDEMAR是对的。程序员都是不同的。

Artyom Trishkin 2015.05.31 11:27

//+----------------------------------------------------------------------------+
   datetime GetTimeLeft(string symbol, int timeframe) {return(60*timeframe+(iTime(symbol,timeframe,0)-TimeCurrent()));}
//+----------------------------------------------------------------------------+

我选择Artyom Trishkin。

我同意,如果每个人都是一样的,那就太不可思议了......。

我尊重Artyom(artmedia70),但在这种情况下我不能选择他......而代码简明,还不是万能的。

简洁的代码可能是不安全的,而且有潜在的危险...

计时

返回相应图表的条形图开放时间的值(由shift参数指定)。

datetime  iTime(
   string           symbol,          // символ
   int              timeframe,       // период
   int              shift            // сдвиг
   );

参数

标志

[符号名称的符号。NULL 表示当前符号。

时限

[在]期间。可以是枚举ENUM_TIMEFRAMES 中的一个值。0表示当前图表的周期。

移位

[in] 时间框架值的索引(相对于当前条形图,向后移动指定的条形图数量)。

返回的值

相应图表的条形图开放时间的值(由移位参数指定),如果出现错误,则为0。你需要调用GetLastError()来获得更多关于错误 的信息。


 

交易、自动交易系统和策略测试的论坛

向行政部门和当地人介绍情况

Vladimir Pastushak, 2015.05.31 08:20

你的问题是,你认为哪个代码更正确?

1

void depth_trend()
  {
//--- определение индекса на покупку
   double rsi=iRSI(Symbol(),tf,period,PRICE_CLOSE,0);
   index_rsi = 0;
   if(rsi>90.0) index_rsi=4;
   else if(rsi>80.0)
      index_rsi=3;
   else if(rsi>70.0)
      index_rsi=2;
   else if(rsi>60.0)
      index_rsi=1;
   else if(rsi<10.0)
      index_rsi=-4;
   else if(rsi<20.0)
      index_rsi=-3;
   else if(rsi<30.0)
      index_rsi=-2;
   else if(rsi<40.0)
      index_rsi=-1;
  }

2

int refresh_depth_trend()
  {
   int    index_rsi=0;
   double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,0),up=60,dw=40;
   for(int i=1; i<=4; i++,up+=10,dw-=10)
      index_rsi=rsi>up ? i : rsi<dw ?(i*-1):index_rsi;
   return index_rsi;
  }

3

int refresh_depth_trend()
  {
   return MathFloor( MathAbs( (rsi-50.0)/10.0 - (rsi-50.0)*0.0001 ) ) * ((rsi>50)-0.5)*2;
  }

--没有测试每个选项的正确性 -- 但根据结果,假设三个选项都是相同的 -- 那么任何选项都是正确的

-- 关于代码的简洁性 -- 哪种方案最容易、最快地编辑?

 
Владимир:

我选择

这就是为什么程序员要扇动他们的手指 :)你其实没有太多的选择,你不明白这一点。在我的文件中,你可以看到一个实施的例子,在图表上按秒显示剩余时间。而这个函数只有在下一个tick receipt时才会更新定时器,当TimeCurrent() 被更新时+它的输出必须以某种方式实现,也就是说,我们应该用一些简短的代码对它进行改造。在我的例子中,所有与精确光学有关的东西都已经存在,而TimeCurrent()纯粹是用来与服务器同步的 :)
 
顺便说一下,TimeCurrent 是一个非常微妙的函数
 
MQL5有TimeTradeServer- 非常有趣,但还没有机会使用它。
Документация по MQL5: Дата и время / TimeTradeServer
Документация по MQL5: Дата и время / TimeTradeServer
  • www.mql5.com
Дата и время / TimeTradeServer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Puzanov:
这就是为什么程序员用手指的扇子 :)你真的没有什么可选择的,而且你还没有理解它。在我的文件中,有一个在图表上按秒显示剩余时间的实施例子。而这个函数只有在下一个tick receipt时才会更新定时器,当TimeCurrent()被更新时+它的输出必须以某种方式实现,也就是说,我们应该用一些简短的代码来重构它。在我的例子中,所有与精确光学有关的东西都已经存在,而TimeCurrent()纯粹是用来与服务器同步的 :)

为什么,你被我手指的'粉丝'绊倒了?

我向你展示了如何知道在任何时间框架内下一根蜡烛打开之前还剩下多少时间。这就是全部。问题是完全一样的。

 
亲爱的程序员,我在哪里可以找到一种在µl中编程的方法,即直接使用在exel列中制定的程序,从而将整个exel程序 "驱动 "到µl中?