무료로 어드바이저를 작성해 드립니다 - 페이지 127

 
Наджибулло Хабибов :
좋은 시간입니다. 금을 제외한 모든 통화에 대해 거래를 여는 고문이 있습니다. 금으로도 열려면 Expert Advisor에 어떤 코드를 추가해야 하는지 도와주세요.

시장에서 중재를 통과하지 않습니까?

 
Наджибулло Хабибов :

로트 0.01 중지 볼륨에서 이익 없음 모든 것이 로그에서 정확히 열리지 않음 오류가 없습니다

기호 창에는 각 도구의 기술적 특성이 있습니다. 최소/최대 볼륨 , 최소 정지 레벨

오류가 인쇄되지 않으면 알고리즘이 열기를 허용하지 않을 수 있습니다. :)

 
VVT :

기호 창에는 각 도구의 기술적 특성이 있습니다. 최소/최대 볼륨 , 최소 정지 레벨

오류가 인쇄되지 않으면 알고리즘이 열기를 허용하지 않을 수 있습니다. :)

//--- ***

이해가 되셨다면 골드가 뜨지 않는 이유를 찾아주세요??

 
Наджибулло Хабибов :
//--- ***

이해가 되셨다면 골드가 뜨지 않는 이유를 찾아주세요??

코드를 올바르게 붙여넣기 : 버튼 사용 암호 또는 다른 옵션: 버튼을 사용하여 파일 첨부 파일을 첨부

 
Vladimir Karputov :

코드를 올바르게 붙여넣기 : 버튼 또는 다른 옵션 사용: 버튼을 사용하여 파일 첨부

예, 오프닝, 퍼짐, 미끄러짐 또는 기타 잘못된 것과 관련된 것을 보여줍니다.

 
//--- Inputs
extern double Lots       = 0.1 ;       // лот
extern double KLot       = 1 ;         // умножение лота
extern double MaxLot     = 5 ;         // максимальный лот
extern double Profit     = 0 ;         // Профит в валюте
extern int StopLoss      = 0 ;         // Стоп Лось
extern int TakeProfit    = 0 ;         // ТейкПрофит
extern int BULevel       = 0 ;         // уровень БУ
extern int BUPoint       = 30 ;       // пункты БУ
extern int TrailingStop  = 0 ;         // трал
extern int StartHour     = 0 ;         // час начала торговли
extern int StartMin      = 30 ;       // минута начала торговли
extern int EndHour       = 23 ;       // час окончания торговли
extern int EndMin        = 30 ;       // минута окончания торговли
extern int Reverse       = 0 ;         // 1-реверс
extern int CloseSig      = 0 ;         // 1-закрытие по сигналу
extern int Slip          = 30 ;       // реквот
extern int Shift         = 1 ;         // на каком баре сигнал индикатора
extern int Magic         = 123 ;       // магик

extern string IndName    = "Aroow" ;
extern int SignalPeriod  = 9 ;

datetime t= 0 ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   Comment ( "" );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   Comment ( "" );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool TimeSession( int aStartHour, int aStartMinute, int aStopHour, int aStopMinute, datetime aTimeCur)
  {
//--- время начала сессии
   int StartTime= 3600 *aStartHour+ 60 *aStartMinute;
//--- время окончания сессии
   int StopTime= 3600 *aStopHour+ 60 *aStopMinute;
//--- текущее время в секундах от начала дня
   aTimeCur=aTimeCur% 86400 ;
   if (StopTime<StartTime)
     {
       //--- переход через полночь
       if (aTimeCur>=StartTime || aTimeCur<StopTime)
        {
         return ( true );
        }
     }
   else
     {
       //--- внутри одного дня
       if (aTimeCur>=StartTime && aTimeCur<StopTime)
        {
         return ( true );
        }
     }
   return ( false );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder( int type, double price)
  {
   int r= 0 ;
   color clr=Green;
   double sl= 0 ,tp= 0 ;

   if (type== 1 || type== 3 || type== 5 )
     {
      clr=Red;
       if (StopLoss> 0 )
         sl= NormalizeDouble (price+StopLoss* _Point , _Digits );
       if (TakeProfit> 0 )
         tp= NormalizeDouble (price-TakeProfit* _Point , _Digits );
     }

   if (type== 0 || type== 2 || type== 4 )
     {
      clr=Blue;
       if (StopLoss> 0 )
         sl= NormalizeDouble (price-StopLoss* _Point , _Digits );
       if (TakeProfit> 0 )
         tp= NormalizeDouble (price+TakeProfit* _Point , _Digits );
     }

   r= OrderSend ( NULL ,type,Lot(), NormalizeDouble (price, _Digits ),Slip,sl,tp, "" ,Magic, 0 ,clr);
   return ;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count= 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic)
           {
             if (OrderType()< 2 )
               count++;
           }
        }
     }
   return (count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   
   if (CountTrades()> 0 )
     {
      lot= NormalizeDouble (lot* MathPow (KLot,CountTrades()), 2 );
     }
   if (lot>MaxLot)
      lot=Lots;
   return (lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic)
           {
             if (OrderType()==OP_BUY)
              {
               if (Bid-OrderOpenPrice()>TrailingStop* _Point )
                 {
                   if (OrderStopLoss()<Bid-TrailingStop* _Point )
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop* _Point ,OrderTakeProfit(), 0 ,Yellow);
                     return ;
                    }
                 }
              }

             if (OrderType()==OP_SELL)
              {
               if ((OrderOpenPrice()-Ask)>TrailingStop* _Point )
                 {
                   if ((OrderStopLoss()>(Ask+TrailingStop* _Point )) || (OrderStopLoss()== 0 ))
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop* _Point ,OrderTakeProfit(), 0 ,Yellow);
                     return ;
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void BU()
  {
   bool m;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic)
           {
             if (OrderType()==OP_BUY)
              {
               if (OrderOpenPrice()<=(Bid-(BULevel+BUPoint)* _Point ) && OrderOpenPrice()>OrderStopLoss())
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+BUPoint* _Point ,OrderTakeProfit(), 0 ,Yellow);
                   return ;
                 }
              }

             if (OrderType()==OP_SELL)
              {
               if (OrderOpenPrice()>=(Ask+(BULevel+BUPoint)* _Point ) && (OrderOpenPrice()<OrderStopLoss() || OrderStopLoss()== 0 ))
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-BUPoint* _Point ,OrderTakeProfit(), 0 ,Yellow);
                   return ;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll( int ot=- 1 )
  {
   bool cl;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic)
           {
             if (OrderType()== 0 && (ot== 0 || ot==- 1 ))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble (Bid, _Digits ),Slip,White);
              }
             if (OrderType()== 1 && (ot== 1 || ot==- 1 ))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble (Ask, _Digits ),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double AllProfit( int ot=- 1 )
  {
   double pr= 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic)
           {
             if (OrderType()== 0 && (ot== 0 || ot==- 1 ))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }

             if (OrderType()== 1 && (ot== 1 || ot==- 1 ))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }
           }
        }
     }
   return (pr);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   double blu = iCustom ( NULL , 0 ,IndName,SignalPeriod, 4 ,Shift);
   double red = iCustom ( NULL , 0 ,IndName,SignalPeriod, 5 ,Shift);
   double blu2 = iCustom ( NULL , 0 ,IndName,SignalPeriod, 4 ,Shift+ 1 );
   double red2 = iCustom ( NULL , 0 ,IndName,SignalPeriod, 5 ,Shift+ 1 );

   bool buy = blu< 1000 && red2< 1000 ;
   bool sell = red< 1000 && blu2< 1000 ;

   if (Reverse> 0 )
     {
      buy = red< 1000 && blu2< 1000 ;
      sell = blu< 1000 && red2< 1000 ;
     }

   if (BULevel> 0 )
      BU();
   if (TrailingStop> 0 )
      Trailing();
   if (AllProfit()>Profit && Profit> 0 )
      CloseAll();

   if (TimeSession(StartHour,StartMin,EndHour,EndMin, TimeCurrent ()) && t!=Time[ 0 ])
     {
       if (buy)
        {
         PutOrder( 0 ,Ask);
        }
       if (sell)
        {
         PutOrder( 1 ,Bid);
        }
      t=Time[ 0 ];
     }

   if (CountTrades()> 0 && CloseSig> 0 )
     {
       if (sell)
        {
         CloseAll( 0 );
        }
       if (buy)
        {
         CloseAll( 1 );
        }
     }

   Comment ( "\n blu: " ,blu,
           "\n red: " ,red,
           "\n All Profit: " ,AllProfit());
  }
//+------------------------------------------------------------------+
VVT :

예, 오프닝, 퍼짐, 미끄러짐 또는 기타 잘못된 것과 관련된 것을 보여줍니다.

 

안녕하세요!

4개의 지표와 라이브러리가 있습니다.

두 개의 지표는 계산에만 필요하며 2개는 차트에 표시됩니다.

이 프로세스를 자동화하고 싶습니다. 조건은 3개뿐입니다. 하지만 모든 것을 하나의 파일에 쑤셔 넣어야 하고 라이브러리로 무엇을 해야 할지 명확하지 않습니다.

누군가가 이것을 맡을 수 있습니까?

 
Наджибулло Хабибов :

다음은 무엇을 의미합니까? 번지고 미끄러지지 않습니까? 그렇다면 값을 예를 들어 100-150 이상으로 설정하십시오.

extern int BUPoint       = 30 ;       // пункты БУ
extern int Slip          = 30 ;       // реквот
 
VVT :

다음은 무엇을 의미합니까? 번지고 미끄러지지 않습니까? 그렇다면 값을 예를 들어 100-150 이상으로 설정하십시오.

예, 해당 값에 따라 이러한 값을 설정합니다. 기기의 특성, 즉 기기의 최대 퍼짐

 
VVT :

예, 해당 값에 따라 이러한 값을 설정합니다. 도구의 특성, 즉 도구의 최대 퍼짐은 약이 아닙니다.

작동하지 않음 세트 150이 열리지 않음