[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 296

 
forexnew:

如何描写。

/

在字符串中?

比如说。

string path=TerminalPath()+"/logs/"+tekTime+".log"。

给出了一个错误,如果你删除斜线"/"的话

string path=TerminalPath()+"logs "+tekTime+".log"。

- 没有错误。




在这里这里 阅读。

 
ZZZEROXXX:

也许看看IsTradeAllowed()还能返回什么?

请帮助。我试图通过两个点建立一个趋势,从最后一个点开始向前N个条形链接到条形。即传入 - 第一个和第二个点的时间价格,和N表示为未来的条数(复选框梁=假)。如果第二个点,假设,位于从当前条形0开始的条形1上,而我必须从它提前10个条形抽出,我如何计算从未来条形的时间和价格?

如果你在编译EA的时候不小心撞到了一个繁忙的交易线,这个也可以。我正在寻找一种方法,在EA的评论中显示关于请求的日志信息。看来,实际上没有多少人提出这样的任务。
 
PapaYozh:


在这里这里 阅读。

谢谢你!
 

尊敬的大师们不能帮忙吗?

pvm117 20.10.2011 18:26

下午好!

作为第一个经验,我决定实施以下算法:在布林线汇聚成一个狭窄的走廊后,我可以预期在一段时间内市场会出现急剧的上涨或下跌。在我的专家顾问中,我分析布林线的状态,当它们变得非常接近时(Delta pips),我们在低方向(在低于下线的stepOpen pips)下一个挂单卖出,希望市场会突然向这个方向发展。如果市场向其他方向发展,我们只需删除这个订单。

extern double Delta=800.0;              // Ширина канала, которую мы считаем достаточно узкой чтобы ожидать скоро серьезного движения в одну из сторон
extern double StepOpen=150.0;           // Отступ от линии Боллинджера  для открытия отложенного ордера
extern double TP=350.0;                 // Take Profit
extern double SL=400.0;                 // Stop Loss

int start()
  {
   double T1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0);  // верхняя линия Боллинджера
   double T2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0); // нижняя линия Боллинджера
   if ((Ask>T1+StepOpen*Point)&&OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true) OrderDelete(0); // если рынок пошел вверх – то удаляем отложенный ордер
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true) return(0); // если есть ранее открытый ордер – прекращаем выполнение текущей итерации советника
   if (T1-T2<Delta*Point) {               // если линии Боллинджера сблизились ближе чем на Delta пунктов начинаем операцию открытия ордера
      double PriceOpen=NormalizeDouble(T2-StepOpen*Point,5);  // вычисляем цену открытия
      double StopLoss=NormalizeDouble(T2-StepOpen*Point+SL*Point,5); // вычисляем StopLoss
      double TakeProfit=NormalizeDouble(T2-StepOpen*Point-TP*Point,5); // вычисляем TakeProfit
      OrderSend(Symbol(),OP_SELL,0.1,PriceOpen,5,StopLoss,TakeProfit,0,0,0,Green); //  открываем ордер на продажу
            }
   return(0);
  }
该算法工作不稳定,有时在短时间内打开两个订单,不断出现OrderSendError 130和OrderSendError 138的错误,在市场向其他方向移动的情况下删除未结订单根本不起作用。

请给我们建议!谢谢你!

 
pvm117:

尊敬的大师们不能帮忙吗?

pvm117 20.10.2011 18:26

下午好!

作为第一个经验,我决定实施以下算法:在布林线汇聚成一个狭窄的走廊后,我可以预期在一段时间内市场会出现急剧的上涨或下跌。在我的专家顾问中,我分析布林线的状态,当它们变得非常接近时(Delta pips,我们 在低方向(在低于下线的stepOpen pips)下一个挂单 卖出,希望市场会突然向这个方向发展。如果市场向其他方向发展,我们只需删除这个订单。

该算法工作不稳定,有时在短时间内打开两个订单,不断出现OrderSendError 130和OrderSendError 138的错误,在市场向其他方向移动的情况下,删除未结订单根本不起作用。

请给我们建议!谢谢!

OrderSend(Symbol(),OP_SELL,0.1,PriceOpen,5,StopLoss,TakeProfit,0,0,0,Green); //  открываем ордер на продажу

不是一个挂单,而是一个市场 订单。

因此,它的开盘价必须是不同的,它不能被删除(OrderDelete),而只能被关闭。

 

向所有行家和本线的有经验的读者问好!还有就是任何能帮助我的人=)

实现周期性的最简单和 "正确 "的方法是什么?也就是说,为了简化,我想每15分钟自动执行一些行动。

在我的例子中,它是将一个带有一些统计数据的文件保存到磁盘上。现在我有了一个能做我想做的事情的脚本,而这只是20行代码。那么,我怎样才能让这20行以一定的间隔重复出现呢?根据我的理解,MQL中没有计时器...我是否需要使用一个EA,对每一个刻度 进行某种检查...?

我希望得到您的帮助和提示)

 
你好,你能告诉我,除了在指标中通过M_30 H_1,D_1等设置多货币EA的 时间框架,还有没有其他方法?
 
skyjet:
你好,你能告诉我,除了在指标中通过M_30 H_1,D_1等设置多货币EA的时间框架,还有没有其他方法?

有什么问题呢?
 

你好。

这里有一个问题:建议如何用黄线作为动量预测,用白线作为上层框架的长期上升趋势 的OsM预测?

很难确定波峰之间的振幅,所以建议下一步在哪里挖掘;)


 
Sancho77:

选择第一个,从 开放的 职位中选择。

你需要它来检查未平仓头寸中第一个未平仓头寸和最后一个未平仓头寸之间的点位距离。

只是简单的改写,也许会有帮助?没有检查...

double PriceOpenFirstPos(string sy="", int op=-1, int mn=-1) {
   datetime t=TimeCurrent();
   double   r=0;
   int      i, k=OrdersTotal();

   if (sy=="0") sy=Symbol();
   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol()==sy || sy=="") {
            if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
               if (op<0 || OrderType()==op) {
                  if (mn<0 || OrderMagicNumber()==mn) {
                     if (OrderOpenTime()<t) {
                        t=OrderOpenTime();
                        r=OrderOpenPrice();
                        }
                     }
                  }
               }
            }
         }
      }
   return(r);
}

这样试一下...