[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 561

 
peshihod:

我是这样想的。

谢谢你,它是如此简单和直接,我将给它一个机会。
 
delf:
谢谢你,它是如此简单和直接,我将尝试。
有点不对劲。Stor Loss之后,又回到了同一个方向。
 
delf:
有点不对劲。在STOPLoss之后,又回到了同一个方向。

什么是StopLoss?

 

你好!

你能告诉我需要下载哪些文件,并在mt4中安装这些文件以获得这个窗口吗?

我不明白如何 在模拟中对被测工具的不同时间段进行 模拟。

我想只看到三个日线图,四小时和小时图

我想看三个日线图、四小时图和小时图。 请帮助,我整晚都没能做到!我想看的是日线图。


 
ametist444:

你好!

你能告诉我需要下载哪些文件,并在mt4中安装这些文件以获得这个窗口吗?

我不明白如何 在模拟中对被测工具的不同时间段进行 模拟。

我想只看到三个日线图,四小时图和小时图

我想在一个时间框架内只看到三个窗口,我想只看到三个图表,我想只看到三个日线、四小时和小时的图表。

您是否需要从MT4上以编程方式打开这些窗口?我不确定,我不太擅长这个...:-)

手动打开几个窗口,在那里插入指标,不是一种选择?

 

晚上好:请您告诉我们如何理解

在当前账户和当前市场环境下,指定订单类型所需的保证金金额,不考虑当前的挂单 和未结头寸。

你能对现有函数进行近似计算吗?

 

我也开始使用这个函数,而不是大量使用

double     Lott  ( double     Lot ){
     if ( risk!=0)  Lot=AccountFreeMargin()*risk/10000 ; return (Lot);}  

OrderSend错误131--错误的数量。初步存款为10000,初步手数为1。 然而,有些事情并不奏效。

 

一段时间以来, ,我一直试图 ,重新设计 买入 平仓 区块 ,只关闭最后两个 买入头寸,但是失败了 你能告诉 ,如何重做 区块

void Close_2buy()
{
   bool   result;
  double  close_price;
  int    cmd,error;
  bool close;

      for (int f=OrdersTotal()-1; f>=0; f--) // 
      {
         OrderSelect(f, SELECT_BY_POS);
         if (OrderSymbol()==Symbol() &&(OrderMagicNumber()==magic ) 
         && (OrderType() == OP_BUY )) 
         {
            close = False;
            {
               close_price = MarketInfo(OrderSymbol(), MODE_BID);
               close = True;
            }
               
            if (close) 
            {
               result=OrderClose(OrderTicket(), OrderLots(), close_price, 0, CLR_NONE);
               if(result!=TRUE)
               {error=GetLastError();Print("LastError = ", error);}
            }
            
         }
      }
}
 
Dimka-novitsek:

我也开始使用这个函数,而不是大量使用

OrderSend错误131--错误的数量。初步存款为10000,初步手数为1。 然而,有些事情并不奏效。


我使用这个。为你修改并尝试(将AccountBalance()改为AccountFreeMargin(),将你的变量。阄数)
//+------------------------------------------------------------------+
//|                                                         0000.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
////////////////////////////////////////////////////////////////////////|
extern int     Method         =1;      // Метод: 0-FixedLots, 1-часть //|
                                       //(Risk) от свободных средств  //|
                                       // нормированных по значению   //|
                                       // MeansStep(например Risk=    //|
                                       // 0.01,MeansStep=1000,если    //|
                                       // средств меньше 2000,лот     //|
                                       // равен 0.01,если средств     //|
                                       // стало 2000 или более - 0.02 //|
                                       // лота, 3000 или более - 0.03 //|
                                       // лота и т.д.).               //|
                                                                      //|
extern double  LOTS           =0.01;   // Количество лотов при        //|
                                       // Method=0.                   //|
                                                                      //|
extern double  Risk           =0.01;   // Риск. Часть от средств при  //|
                                       // FixedLot=false.             //|
                                                                      //|
extern double  MeansStep      =100.0;  // Шаг средств. Используется   //|
                                       // при Method=1.               //|     
////////////////////////////////////////////////////////////////////////|
//+------------------------------------------------------------------+//|
//|  Определяем "свой" минимальный размер или шаг лота на момент     |//|
//|  начала цикла в зависимости от размера баланса и установленного  |//|
//|  риска.                                                          |//|
//+------------------------------------------------------------------+//|
////////////////////////////////////////////////////////////////////////|
double fGetLotsSimple()                                               //|
   {                                                                  //|
   double LOTSTEP,lot;                                                //|
   double Means;                                                      //|
   switch (Method)                                                    //|
      {                                                               //|
      case 0:                                                         //|
         lot=LOTS;                                                    //|
      break;                                                          //|
      case 1:                                                         //|
         Means=AccountBalance();                                      //|
         if(Means<MeansStep)Means=MeansStep;                          //|
         lot=(MeansStep*MathFloor(Means/MeansStep))/MeansStep*Risk;   //|
      break;                                                          //|
      default:lot=LOTS;                                               //|
   }                                                                  //|
   if(lot<1.0/MathPow(10,LotsDigits))lot=1.0/MathPow(10,LotsDigits);  //|
   LOTSTEP=MarketInfo(Symbol(),MODE_LOTSTEP);                         //|
   lot=MathFloor(lot/LOTSTEP)*LOTSTEP;                                //|
   lot=NormalizeDouble(lot,LotsDigits);                               //|
   if(lot>AccountFreeMargin())lot=-1;                                 //|
   return(lot);                                                       //|
}                                                                     //|
////////////////////////////////////////////////////////////////////////|
)
 

你能告诉我这个代码可能有什么问题吗?这是一个跟踪止损,但当测试时,它产生错误1,当修改。为什么不修改命令?

当我在纠正这个错误时(到目前为止没有成功),当把Expert Advisor的主代码编译到打印函数中时,它开始返回一个错误,说它需要倒置的逗号,但那里的一切都很正确,要纠正这个错误,我必须删除并放入一个新的倒置的逗号...

bool trailingstop()
{
如果((OrderMagicNumber()==11111)==true)
{
Print("保持买入位置")。
while(OrderCloseTime()==0)
{
如果((Bid-OrderStopLoss())>(StopLevel*Point))
{
如果(OrderModify(OrderTicket(),OrderOpenPrice(),ND(Bid-StopLevel*Point),0,0) )
Print("Stop Loss of the order with number ",OrderTicket()," and the magic number ",OrderMagicNumber()," successfully changed to ",OrderStopLoss();
else Print("号码为",OrderTicket(), "和魔法号码为",OrderMagicNumber(), "的订单的止损水平。错误",GetLastError())。
}
}
如果(OrderCloseTime()>0)
{
Print("号码为",OrderTicket(), "和神奇数字",OrderMagicNumber(), "以价格",OrderClosePrice(), "盈利/亏损",OrderProfit()的订单关闭。)
return(true)。
}
}
否则
{
如果((OrderMagicNumber()==22222)==true)
{
Print((Sell position);
while(OrderCloseTime()==0)
{
如果((OrderStopLoss()-Ask)>(StopLevel*Point))
{
如果(OrderModify(OrderTicket(),OrderOpenPrice(),ND(Ask+StopLevel*Point),0,0) )
Print("Stop Loss of the order with number ",OrderTicket()," and the magic number ",OrderMagicNumber()," successfully changed to ",OrderStopLoss();
else Print("号码为",OrderTicket(), "和魔法号码为",OrderMagicNumber(), "的订单的止损水平。错误",GetLastError())。
}
}
如果(OrderCloseTime()>0)
{
Print("号码为",OrderTicket(), "和神奇数字",OrderMagicNumber(), "以价格",OrderClosePrice(), "盈利/亏损",OrderProfit()的订单关闭。)
return(true)。
}
}
否则返回(false)。
}
}