[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 417

 
okvseok:


好吧,比如说,不要把鼠标滚轮(键)向左或向右旋转3分钟)),而是直接输入一个特定的酒吧日期或其他东西。

谢谢你的回答!


按空格键并输入所需的日期。

这个答案是正确的,因为它是无用的。与问题完全相关。

 
TarasBY:
在图形的左下角(日期所在),双击,在打开的窗口中,以DD.MM.YYY格式输入所需的日期--这样 "不手写 "够吗?
是的,非常感谢你,好的。
 
Run:

或者换句话说,
,脚本应该大致写N行,但它只写了一个

首先,将文件 打开和关闭程序 移出循环。
 

谢谢你,它正在工作。

  handle=FileOpen("AUDJPY.csv", FILE_READ|FILE_WRITE, '\t');
  for (int i=NumberOfCandels; i>0; i--) {
    arrowbuy = iCustom(NULL, 0, "xxx", 0, i);
    arrowsell = iCustom(NULL, 0, "xxx", 1, i);
    if(arrowbuy != EMPTY_VALUE && arrowsell == EMPTY_VALUE) {
      if(handle>0) {
        FileWrite(handle, TimeToStr(Time[i], TIME_DATE|TIME_MINUTES), " Buy");
        }
      }
    if(arrowsell != EMPTY_VALUE && arrowbuy == EMPTY_VALUE) {
      if(handle>0) {
        FileWrite(handle, TimeToStr(Time[i], TIME_DATE|TIME_MINUTES), " Sell");
        }
      }
  }
  FileClose(handle);
 
okvseok:


那么,比如说,不要把鼠标滚轮(键)向左或向右滚动3分钟)),而是直接输入某个酒吧的日期或其他东西。

谢谢你的答复

有一个函数

intiBarShift( 字符串, int timeframe, datetime time, bool exact=false)
按时间搜索一个酒吧。该函数返回指定时间所属的条形图的偏移量。如果在指定的时间内没有条形图(历史上的 "洞"),该函数就会根据确切的 参数返回-1或最近的条形图的偏移。
参数。
标志 - 仪器的符号名称。NULL表示当前符号。
时限 - 期间。可以是图表中的 一个时间段。0表示当前图表的周期。
时间 - 搜索的时间值。
确实 - 如果没有找到酒吧,则返回值。FALSE - iBarShift返回最接近。TRUE - iBarShift返回-1。
例子。
 datetime some_time=D'2004.03.21 12:00'; int shift=iBarShift("EUROUSD",PERIOD_M1,some_time); Print("shift of bar with open time",TimeToStr(some_time)," is " ,shift);

 
Chiripaha:

:))))))))(没有记号...也没有评论)

在提问者和回答者这两个人中,更有可能的是,提问者你不太明白当挂单被触发后会发生什么。挂单在最接近它的任何价格上执行。挂单的经验法则是如果价格已经达到,交易将进入市场。而且价格也不重要。这也适用于止损,因为它们也是挂单,只是与交易本身的位置相反。这与交易所的交易略有不同。也许这就是你感到困惑的原因。

在这个意义上,很多时候取决于经纪人的质量。我们指的是执行交易的规定,以及该经纪商的流动性的可用性,也许还有一堆其他的特点:大概是诚实,等等。如果你阅读与几乎所有外汇经纪商(DC)的合同,事实证明,你的交易(和任何其他交易者)可以在这个 "经纪商 "的任何方便的价格关闭,它将在法律和法规范围内,因为你已经签署了它。- 但这些是其他话题。这与编程没有关系。


如果你有一个机器人在演示,一切通常在那里正常开放,以吸引人们。而且,我再次重复,已经手动打开的订单已经在它们被设置的地方打开了!这就是为什么我们的产品在市场上的表现是非常好的。
 
Ekburg:

至于外汇经纪商,我没有一个清晰的印象,但我已经在模拟上进行了交易。而且,我再次重复,已经手动打开的订单已经在它们被设置的地方打开!

一句话:当然,为了利益,可以请你更详细地描述一下当时的情况,因为你只提供了一个大概的描述:机器人订单是什么时候定的(是否提前定的;是否与机器人同时手动,等等)。但无论如何,即使在这种情况下,你也只需要与你的经纪人打交道,因为他有自己的线程,可能会排队进行交易。假设,如果手动挂单是先下的,那么它的执行时间将是不同的(包括其他客户的队列),所以价格可能不同。如果机器人在形成信号的期间内下了订单,那么订单在队列中的到来是不明显的--因此执行价格可能出现偏差。另外,它可能受到你没有写任何东西的头寸大小的影响......等...

但是...都一样,这只能通过经纪人(DC)来澄清。而且我想他会找到一堆我没有提到的理由。- 而建议是正确的:把你手中的日志交给经纪人,当然,除非你仍然认为你的挂单 已经移动。但不要混淆两个不同的概念:挂单和这个挂单的交易。限价单是以任何最近的价格和申报的数量进入市场的指令。而交易 - 是有可能执行你的订单的价格,以申报的资金量(手)。- 而且这些订单的价格很可能是不同的(尤其是在快速市场上,也就是你得到的链接)。在限价订单的情况下,订单的价格和执行的价格是相等的(根据定义)。

而事实上,经纪商的模拟订单和真实订单并无差异,这一点很好!- 这表明该经纪商没有伪造交易来吸引客户(如你所说)。- 在这种情况下,看不出有什么差异。

 
Zhunko:

1.你是如何开始的?你必须先在不更新的情况下运行它。即:IsRefreshRates = false。数据将不会被更新。

2.那么你必须在IsRefreshRates = true的情况下运行它。数据将被更新。

这里有一张截图1。屏幕截图2。

注意酒吧的时间。你也可以看到,MarketInfo()从市场概览中获取数据

这里是专家顾问。我稍微纠正了一下。打勾的仪器名称。


1.我 使用一个终端,无论如何,有无更新,屏幕都是一样的!我从Dookie那里下载了终端和测试用的脚本,其中有99%的引文。我把它们倒进去了,因为它由于过大而无法连接。以下是链接:http://www.load.to/PqWVW2JQ75/Тиковые_котировки_для_тестера_MT4_от_DukasCopy.zip

2. 在任何其他终端,情况已经不同。例如,在Oanda这里。

2.1 最初的情况下。

IsRefreshRates = false

所以。

2.2 进一步的情况。

IsRefreshRates = true

像这样。

正如你在第一种模式中所看到的,价格与澳元纽元对相差甚远...而在第二种模式中,价格正是我们想看到的......

事实证明,仍然是RefreshRates()从服务器上 "拉 "来了引号。支持是睡着了,所以这个变体比原来的变体更接近。

 
Zhunko:
RefreshRates()只更新专家正在处理的内容。这就是它发现的方式。来自专家的消息。很久以前,Metakvot的某人写了关于它的文章。


Vadim,我怀疑RefreshRates() 是否知道专家顾问需要什么工具。不是所有的专家顾问都在全局参数中定义了工具名称,不是吗?嗯...如果是这样,这就引出了一个问题,RefreshRates() 根据什么知道哪些工具的市场数据必须更新,哪些必须不更新?
 
Integer:

顺子,第409页,最下面的帖子--说了为什么要更新数据。因为iOpen()、iClose()被调用,而你从RefreshRates()中证明了这一点。第一次运行脚本时没有RefreshRates(),但调用了iOpen()和iClose()函数,终端由此加载数据。在第二次运行时,数据已经在那里了,我们知道零条是先加载的,所以印象是数据都加载了,但可能没有全部加载,但可能正在进行中。

...但你却证明你已经搞清楚了数据加载....。我们在这里讨论的是什么流和同步......


为什么iOpen()会从服务器上提取数据?文档中写到,它返回一个值...所以它是返回,而不是下载。