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

 
你好。你能告诉我,如果一个EA必须按市场价格开仓,我怎么能知道一个订单是否已经开仓,其开仓价格是多少?
 
awega:
你好。你能告诉我,如果一个EA必须按市场价格开仓,我怎么能知道一个订单是否已经开仓,其开仓价格是多少?
https://book.mql4.com/ru/
 
我如何知道当前的时间
 
我需要实现一个函数,从几种类型的值中返回一个复合结果,你能告诉我怎么做吗?还是我应该用全局变量 来表示这个函数的值?
 
splxgf:
https://book.mql4.com/ru/
如果你知道要在哪个主题中寻找
 
//+------------------------------------------------------------------+
//|                                                       10pips.mq4 |
//|                                                        fortrader |
//|                                                 www.fortrader.ru |
//+------------------------------------------------------------------+
#property copyright "fortrader"
#property link      "www.fortrader.ru"

extern int       TakeProfit_Buy = 10;
extern int       StopLoss_Buy = 5000;
extern int       TrailingStop_Buy = 5000;
extern int       TakeProfit_Sell = 10;
extern int       StopLoss_Sell = 5000;
extern int       TrailingStop_Sell = 5000;
extern double     Lots = 0.01;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  if (Volume[0] > 1000) return(0);
// Объявляем переменные
int total, cnt;

  total=OrdersTotal();

  // Проверка средств
  if(AccountFreeMargin()<(1000*Lots))
     {
       Print("We have no money. Free Margin = ", AccountFreeMargin());   
       return(0);  
     }
  if(total<1000)
    {  
     // Открытие сделкок
       OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss_Buy*Point,Ask+TakeProfit_Buy*Point,"Покупаем",16384,0,Green);
       Sleep(10);//10 секунд
       RefreshRates();
       OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss_Sell*Point,Bid-TakeProfit_Sell*Point,"Продаем",16385,0,Red);
    }
  if(total==1000)
    {
       OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
       if(OrderType()==OP_BUY)
         {
           OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss_Buy*Point,Ask+TakeProfit_Buy*Point,"Покупаем",16384,0,Green);
         }
       if(OrderType()==OP_SELL)
         {
           OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss_Sell*Point,Bid-TakeProfit_Sell*Point,"Продаем",16385,0,Red);
         }
    }   
  for(cnt=total-1;cnt>=0;cnt--)
     {
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
       if(OrderType()==OP_BUY)
         {
           if(TrailingStop_Buy>0)  
             {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop_Buy) // Bid - цена покупки
                 {
                   if(OrderStopLoss()<Bid-Point*TrailingStop_Buy)
                     {
                       OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop_Buy,OrderTakeProfit(),0,Green);
                       return(0);
                     }
                 }
             }
         }
       if(OrderType()==OP_SELL)
         {
           if(TrailingStop_Sell>0)  
             {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop_Sell))  // Ask - цена продажи
                 {
                   if((OrderStopLoss()>(Ask+Point*TrailingStop_Sell)) || (OrderStopLoss()==0))
                     {
                       OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop_Sell,OrderTakeProfit(),0,Red);
                       return(0);
                     }
                 }
             }
         }
  
     }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
我有一个简单的专家顾问,它打开卖出或买入交易到一定的金额,并设置SL和TP(对我来说,重要的是交易金额)。我有一个简单的专家顾问,只是为一定数量的交易建立卖出或买入头寸,然后为一定数量的交易建立卖出或买入头寸(这是我感兴趣的交易数量)。请告知这里可以做什么?
 
DOCTORS:
我如何知道当前的时间?
TimeCurrent()
 
utyff:
我有一个简单的专家顾问,它打开卖出或买入交易到一定的金额,并设置SL和TP(对我来说,重要的是交易金额)。我有一个简单的专家顾问,只是为一定数量的交易建立卖出或买入头寸,然后为一定数量的交易建立卖出或买入头寸(这是我感兴趣的交易数量)。请告知这里可以做什么?

增加滑点,使价格正常化
 
awega:
你好。你能告诉我,如果一个EA必须以市场价格开仓,我如何确定一个订单是否已经开仓,如何确定其开仓价格?
打开MetaEditor的帮助,"交易功能":OrderSend()和OrderOpenPrice() - 那里有你问题的现成答案。
 
utyff:
我有一个简单的专家顾问,它打开卖出或买入交易到一定的金额,并设置SL和TP(对我来说,重要的是交易金额)。我有一个简单的EA,它只是以一定的手数打开卖出或买入交易,并放置SL或TP(这是我感兴趣的交易量)。请告知这里可以做什么?
首先要做的是检查汽车注册日志:专家顾问会在那里留下错误信息。然后根据这些信息,分析什么和为什么。最好是你自己学会分析,而不是把成捆的代码扔在这里,希望别人也能为你做同样的事情。