KimIV的有用功能 - 页 81

 
KimIV >> :

在第76页...

谢谢你

 

isTradeTimeInt()函数。

该函数返回一个允许定时交易的标志。返回值为真或假。函数isTradeTimeInt()与函数isTradeTimeString() 的原理相似,都是通过时间间隔识别,即交易开始时间既可以大一些(一天内的时间间隔),也可以小一些(不同天的时间间隔)。函数isTradeTimeInt()接受以下可选参数。

  • hb- 数字,指定交易开始时间的小时。默认值为0。
  • mb- 一个数字,指定交易开始时间的分钟数。默认值--0。
  • he- 一个数字,指定交易结束时间的小时。默认值--0。
  • me- 一个数字,用于指定交易结束时间的分钟数。默认值--0。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.04.2009                                                     |
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
bool isTradeTimeInt(int hb=0, int mb=0, int he=0, int me=0) {
  datetime db, de;           // Время начала и окончания работы
  int      hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+ hb+":"+ mb);
  de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+ he+":"+ me);
  hc=TimeHour(TimeCurrent());
  if ( db>= de) {
    if ( hc>= he) de+=24*60*60; else db-=24*60*60;
  }

  if (TimeCurrent()>= db && TimeCurrent()<= de) return( True);
  else return( False);
}
 

如何使用isTradeTimeInt()的例子。

  1. 一天内的时间段。在一个时期内交易服务器的 当前时间,并让它成为 "08:30"。
    if (isTradeTimeInt(6, 0, 9, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");
  2. 日内的时间框架。段外的贸易服务器的当前时间,并让它等于 "08:30"。
    if (isTradeTimeInt(12, 0, 16, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");
  3. 时间段包括日界。段内交易服务器的当前时间,并让其等于 "08:30"。
    if (isTradeTimeInt(21, 15, 9, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");
  4. 时间段包括日界。段外的贸易服务器的当前时间,并让其为 "08:30"。
    if (isTradeTimeInt(22, 0, 5, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");

附上一个测试isTradeTimeInt()函数的脚本。

附加的文件:
 

最新的功能列表,包括简要描述和链接...

附加的文件:
f_kimiv.rar  12 kb
 
KimIV >> :

isCloseLastPosByStop()函数。

该函数返回一个标志,即通过停止关闭最后一个位置。Flag is up - True - StopLoss已经触发。Flag lowered - False - 职位已因其他原因被关闭。更准确地选择要考虑的位置是由外部参数设定的。


你好

试图为我自己的目的使用你的功能。小型工作专家顾问。只卖出和关闭,一个位置。有时它会连续抓到几个止损点。我想在第一次止损后改变卖出条件,专家顾问开仓,但不平仓。请告诉我,我做错了什么

..........................................................

如果( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) ==0)
{
如果 ( (StochK_0<StochD_1) && (StochD_1 > 80) ) // 第一次缓慢卖出
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green); // sell

OrderSelect(0, SELECT_BY_POS)。

如果(OrderSelect(0, SELECT_BY_POS)==true )
Print("SELECT_BY_POS")。
否则
Print("选择失败的错误:",GetLastError())。
RefreshRates()。
如果((StochK_0<30)&&(StochD_1<30))
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet)。
}
否则
如果( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) ==1)
{
如果 ((StochK_0<StochD_1) && (StochK_0 < 60) && (StochD_1 < 60) )

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "My EXP", MagicNamber,0,Green); //

...........................

 
KoZaNOStra писал(а)>>
专家开仓,但不平仓

打印StochK_0StochD_1 变量。也许他们采取的价值不属于你的关闭条件。

 

给KimIV

你好,请你帮助把这个群集指标 转换成一个函数,并通过输入参数--对子名称,把+对子变化率值返回(右上角)。 我预先感谢你。

P.S..... 我已经挣扎了一个星期了

附加的文件:
cc_240.mq4  13 kb
 
是否有任何功能可以在货币对的开放窗口上显示新闻?
 
那么我们如何在代码中表达,在任何一个小时的开始,在第一秒我们打开两个不同方向的头寸,在该小时的最后一秒我们关闭失败的订单?
 
VAM_ писал(а)>>
那么我们如何在代码中表达,在任何一个小时的开始,在第一秒我们打开两个不同方向的头寸,在该小时的最后一秒我们关闭失败的订单?

如果没有,第一和最后一秒呢?