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

 
Zhunko:
德国马克、ecu和欧元都被考虑在内。我想每个人都知道这一点。

事实证明,不是每个人都...:(

这很奇怪...一个品牌就是一个品牌--它不是一个欧元。好吧,算了......我们会考虑到这个事实......

 
Notter:

所有善良的人们,下午好。

关于用强势运动进行交易的问题。OrderSend 函数有滑点 参数-- 与订单价格的最大滑点。对它的价值是否有任何限制?或者我们可以把它设定为1000分?0 "值是否意味着零滑点,或者在开单时不考虑这个参数?

此外,在强势移动的情况下,我从客户终端发出的市价订单是否会到达服务器并等待执行放在服务器上的挂单,无论其价格如何,还是会在收到订单的那一刻立即按市场价格执行?换句话说,我可以期待订单在断裂前被执行,还是只有在修正开始时才会被打开?

滑点是您终端的订单 价格与服务器返回的价格之间的点数差异。当他们在思考的时候,价格也可以移开。当有强烈的运动时,服务器通常会减慢速度。它繁殖得越多,你以公布的价格开盘的机会就越少,因此对你来说是一个更好的价格。如果你设置了1000点的滑点,你将开...在搬家结束时。这对经纪公司来说是有利可图的。而且 "厨房:) "越多,服务器就会 "思考 "越久,用重新报价等方式让你超负荷工作。

通过将滑点参数设置为0,你将只在订单价格和服务器返回的价格相同的情况下开仓。

 

新年快乐!

我写了一些代码,应该找到一天内指定时间段的最大值和最小值。但事实上有些东西并不奏效。请看一看。

//+------------------------------------------------------------------+
//|                                                     +Session.mq4 |
//|                                       Copyright 2012, silhouette |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, silhouette"
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#include <+ChartTrendLineCreate.mqh>

string OpenTime="00:00"; // время открытия сессии
string CloseTime="09:00"; // время закрытия сессии
int Days=100; // количество расчитываемых дней

//+------------------------------------------------------------------+
string Symb;
int i;
bool Ans;
//+------------------------------------------------------------------+
int init()
  {
   Symb=Symbol();
   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {
   //+------------------------------------------------------------------+
   datetime Time_OD, H1_OS, H1_CS; 
   int H1_OpenDayShift, H1_OpenSessionShift, H1_CloseSessionShift, Hst, Lst;
   string H1_OD;
   double Maximum, Minimum;
   //+------------------------------------------------------------------+
   for(i=0; i<100; i++) // перебираем дни
    {
     Time_OD=iTime(Symb,PERIOD_D1,i); // находим дату открытия выбранного бара
     H1_OpenDayShift=iBarShift(Symb,PERIOD_H1,Time_OD,false); // ...его индекс
     
     H1_OD=TimeToStr(Time_OD,TIME_DATE); 
     
     H1_OS=StrToTime(H1_OD+" "+OpenTime);
     H1_OpenSessionShift=iBarShift(Symb,PERIOD_H1,H1_OS,false); // ...индекс бара открытия сессии
     H1_CS=StrToTime(H1_OD+" "+CloseTime);
     H1_CloseSessionShift=iBarShift(Symb,PERIOD_H1,H1_CS,false); // ...индекс бара закрытия сессии
     
     // ... максимум и минимум
     Hst=iHighest(Symb,PERIOD_H1,MODE_HIGH,(H1_OpenSessionShift-H1_CloseSessionShift),H1_CloseSessionShift);
     Lst=iLowest(Symb,PERIOD_H1,MODE_LOW,(H1_OpenSessionShift-H1_CloseSessionShift),H1_CloseSessionShift);
     Maximum=iHigh(Symb,PERIOD_H1,Hst);
     Minimum=iLow(Symb,PERIOD_H1,Lst);
     
     ChartTrendLineCreate(H1_OS, Maximum, H1_CS, Maximum, Red);
     ChartTrendLineCreate(H1_OS, Minimum, H1_CS, Minimum, Red);
     
     
    }

   return(0);
  }

 
silhouette:

新年快乐!

我写了一段代码,它应该找到一天内指定时间段的最大值和最小值。但事实上有些东西并不奏效。请看一看。

尝试H1_OpenSessionShift-H1_CloseSessionShift+1
 
Mislaid:
尝试H1_OpenSessionShift-H1_CloseSessionShift+1
谢谢,现在它发现一切都很正常。
 
你能告诉我如何制作一个EA,在TF D1上每4小时下一次订单吗?现在我必须手动切换到小TF,并在指标信号与D1重合时设置订单。这是令人厌烦和不方便的。
 
sultonov:
如果我想问,比如说我怎么能在TF D1上设置一个EA,每4小时下一次订单?如果我的指标信号与D1相同,那么我就必须手动进入小TF并下单。这是令人厌烦和不方便的。

新年快乐,优素福!!。

要做到这一点,你需要在你的EA中明确规定条件,包括设置订单的时间跟踪,你可以在TF H4上控制一个新的酒吧,使其能够发挥作用。

在你的案例中,是什么阻止了EA附在H4的符号图上,使用D1获得开单信号,并在expa代码中明确地设置它们?

P.S. 你呢?你不喝酒还是怎么的?

这里是1月2日--喝酒,喝酒!:-)

 

我写了一个函数,应该可以通过Fibo找到TP。

//+-------------------------------------------------------------------------------------+
//| Вычисление ТП по Фибе                                                               |
//+-------------------------------------------------------------------------------------+
double GetProfitByFibo()
{
  double minValue, maxValue;
  
 // if(GetStateMa() == MA_TALKING_LONG)
    if(OrderType() == OP_BUYSTOP)
    {
      maxValue = iHigh(Symbol(),i_ExtremumLookingTF,i_maxValueShiftB);
      minValue = iLow(Symbol(),i_ExtremumLookingTF,i_minValueShiftB);
     
      if((maxValue - minValue) >= 7*pt)
      {
      double fibo1618 = NormalizeDouble((minValue + (maxValue - minValue)*1.618),Digits);
      }
   
    }
  
 // if(GetStateMa() == MA_TALKING_SHORT)
    if(OrderType() == OP_SELLSTOP)
    {
      maxValue = iHigh(Symbol(),i_ExtremumLookingTF,i_maxValueShiftS);
      minValue = iLow(Symbol(),i_ExtremumLookingTF,i_minValueShiftS);
 
      if((maxValue - minValue) >= 7*pt)
      {
      fibo1618 = NormalizeDouble((maxValue - (maxValue - minValue)*1.618),Digits);
      }
          
  }
  return(fibo1618);
}

这个函数的外部变量在这里。

extern string ___H2 = "_____  Параметры для функции Fibo_TP _____";
extern int i_ExtremumLookingTF = 5,
           i_maxValueShiftB = 8,
           i_minValueShiftB = 3,
           i_maxValueShiftS = 3,
           i_minValueShiftS = 8;

我在一个正在运行的EA中插入这个功能,而不是一个固定的止盈,结果EA开始停滞不前。可能出了什么问题?

周期性地,在修改订单时,TP根本没有被设置。

例如,这是一个用于购买的函数(我注释了前面的修改函数)。

//+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy()
{
  int ticket = -1;
  string myNote = "Сов баянул";
  
  double price = High[1] + i_thresholdFromInput*pt;
  double SL = Low[1] - i_thresholdFromBasedSL*pt ;

  if(price > Ask)
  {
    ticket = OrderSend(Symbol(),OP_BUYSTOP,0.1,NormalizeDouble(price,Digits),i_slippage,0,0,myNote,i_myMagic,0,Navy);
  }
  
  if(ticket > 0 && OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES) == true)
  //  if(!OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,Digits),NormalizeDouble(High[1] + i_tp*pt,Digits),0,Navy))
//  Print("GetProfitByFibo() = ", GetProfitByFibo());
      if(!OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,Digits),GetProfitByFibo(),0,Navy))
    return(false);
  
  return(true);
}
 
double GetOrderOpenPrice(string sy="NULL", int op=-1, int mn=-1)
{
datetime t;
double r=0;
inti, 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=="" )
{
如果(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if (op<0 || OrderType()==op)
{
if (mn<0 || OrderMagicNumber()==mn)
{
if (t<OrderOpenTime())
{
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r)。

}


这个函数检查最后一个订单的开盘价

如何在函数调用中写出这个条件:如果价格从最后一个订单的开仓价向上或向下移动了75点,我们将继续工作。

 

你好!

所附文件包含Voldemar公司的一个EA。不幸的是,他没有在私下里回答,我想尽快纠正。

我怎样才能改变订单的开启条件?目前,EA被设置为回滚价格。 我们希望它能根据最后一个条形图打开。如果收盘价 低于开盘价,就会开出卖盘,反之亦然。

谢谢你

附加的文件: