[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 527

 
안녕하세요. 조언자는 시장 가격 으로 포지션을 개설 해야 합니다. 주문이 열렸는지 여부와 개시 가격을 어떻게 결정할 수 있습니까?
 
awega :
안녕하세요. 조언자는 시장 가격으로 포지션을 개설해야 합니다. 주문이 열렸는지 여부와 개시 가격을 어떻게 결정할 수 있습니까?
https://book.mql4.com/en/
 
현재 시간 을 어떻게 알 수 있습니까?
 
여러 유형의 값에서 합성 결과를 반환하는 함수를 구현해야 하는데 어떻게 하면 더 잘할 수 있는지 알려주세요. 아니면 이 함수의 값에 전역 변수 를 사용해야 합니까?
 
splxgf :
https://book.mql4.com/en/
알고 있다면 어떤 주제를 찾아야 하는지 알려주세요
 
//+------------------------------------------------------------------+
//|                                                       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 :
현재 시간을 어떻게 알 수 있습니까?
시간 현재()
 
utyff :
저에게는 단순한 어드바이저가 있는데, 어리석게도 일정 금액까지 매도 또는 매수 거래를 열고 SL과 TP를 설정합니다(나에게 중요한 거래 수입니다). 소수점 이하 네 자리에서는 잘 작동하지만 테스터에서는 작동하지만 소수점 이하 다섯 자리에서는 작동하고 싶지 않습니다. 여기서 무엇을 할 수 있는지 알려주세요.

슬리피지 증가 및 가격 정상화
 
awega :
안녕하세요. 조언자는 시장 가격으로 포지션을 개설해야 합니다. 주문이 열렸는지 여부와 개시 가격을 어떻게 결정할 수 있습니까?
MetaEditor에서 도움말을 엽니다. " 거래 기능 ": OrderSend() 및 OrderOpenPrice() - 질문에 대한 기성 답변이 있습니다.
 
utyff :
나에게는 단순한 어드바이저가 있는데, 어리석게도 일정 금액까지 매도 또는 매수 거래를 열고 SL과 TP를 설정합니다(나에게 중요한 거래 수입니다). 소수점 이하 네 자리에서는 잘 작동하지만 테스터에서는 작동하지만 소수점 이하 다섯 자리에서는 작동하고 싶지 않습니다. 여기서 무엇을 할 수 있는지 알려주세요.
우선, 로그를 살펴보십시오. 어드바이저는 거기에 오류 메시지를 남깁니다. 그런 다음 이러한 동일한 실수에 따라 무엇과 이유를 파악하십시오. 더욱이, 스스로 분석하는 법을 배우고 다른 사람들이 당신을 위해 똑같이 할 것이라는 희망으로 코드의 족쇄를 여기에서 버리지 않는 것이 바람직합니다.