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

 

모두들 안녕! 현재 가격에 대한 바인딩으로 2개의 광선에 표시기를 작성할 수 있는 사람은 누구입니까?

일반적으로: 가격에서 N 거리(Bid 및 Ask)에 두 개의 수평 빔이 배치됩니다. 하나는 아래에, 다른 하나는 위에 배치됩니다. 그리고 그게 전부입니다) 광선은 각 틱으로 다시 그려지고 어떤 사람은 말할 수도 있습니다. 그들은 가격을 따릅니다. 거리는 표시기 설정 에서 설정할 수 있습니다. 고맙습니다!

 
Radmir Serebrennikov # :

모두들 안녕! 현재 가격에 대한 바인딩으로 2개의 광선에 표시기를 작성할 수 있는 사람은 누구입니까?

일반적으로: 가격에서 N 거리(Bid 및 Ask)에 두 개의 수평 빔이 배치됩니다. 하나는 아래에, 다른 하나는 위에 배치됩니다. 그리고 그게 전부입니다) 광선은 각 틱으로 다시 그려지고 어떤 사람은 말할 수도 있습니다. 그들은 가격을 따릅니다. 거리는 표시기 설정 에서 설정할 수 있습니다. 고맙습니다!

코드: 동적 높음 및 낮음

다이나믹 하이 앤 로우

쌀. 1. 동적 높낮이

Dynamic High and Low
Dynamic High and Low
  • www.mql5.com
Индикатор без индикаторных буферов - просто две линии на постоянном расстоянии от цены
 
Vladimir Karputov # :

코드: 동적 높음 및 낮음


쌀. 1. 동적 높낮이

정말 감사합니다!!!
 
누군가가 MT5에서 실행 후 bdb 막대와 함께 사용 가능한 도구 목록을 제공하는 스크리너를 작성할 수 있습니까? 반전이라고도 알려진 Bdb 막대는 최소가 이전 것보다 낮고 상위 30%에서 마감되고 그 반대의 경우도 마찬가지이며 더 높고 하위 30%에서 마감됩니다. 약 3,000개의 도구.
 
불꽃! 파일의 데이터에 따라 트랜잭션을 수행할 필요가 있었습니다. 사실 파일에서 지시를 받는 봇은 로트리스크를 계산합니다.. 검색해봐도 안나오네요. 누군가 비슷한 것이 있습니까? 내 생각에는 아주 간단하다
 
안녕하세요. 새해 복 많이 받으세요! MQL5 에 명령을 추가하여 signal="buy"일 때 모든 판매 위치가 닫히고 그 반대의 경우 signal="sell"일 때 모든 구매 위치가 닫히도록 도와주세요. 미리 감사드립니다.
 
Namiq Acalov # :
안녕하세요. 새해 복 많이 받으세요! MQL5 에 명령을 추가하여 signal="buy"일 때 모든 판매 위치가 닫히고 그 반대의 경우 signal="sell"일 때 모든 구매 위치가 닫히도록 도와주세요. 미리 감사드립니다.

거의 생성자 기사를 사용하여 EA 생성 - ' InpCloseOpposite ' 매개변수를 ' true '로 설정해야 합니다.

 input group             "Additional features"

*** 
input bool                 InpCloseOpposite        = true;          // Positions: Close opposite

*** 
Почти конструктор для создания советника
Почти конструктор для создания советника
  • www.mql5.com
Предлагаю свой набор торговых функций в виде готового советника. Представленный способ позволяет получать множество торговых стратегий простым добавлением индикаторов и изменением входных параметров.
 
Vladimir Karputov # :

거의 생성자 기사를 사용하여 EA 생성 - ' InpCloseOpposite ' 매개변수를 ' true '로 설정해야 합니다.

블라디미르 감사합니다 이미 읽고 있다
 

좋은 저녁입니다. 그리드에서 첫 번째 주문의 로트 크기를 찾는 방법을 알려주시겠습니까?

두 번째 질문은 정보 패널의 최대 드로다운 값을 수정하는 방법입니다(드로다운 자체를 계산하지만 부동 상태입니다. 최대 값을 얻는 방법)

너무 무리하지 말라고 예를 들어 MQL4를 공부하고, 시범적으로 이 두 포지션에서 막다른 골목(

 
Namiq Acalov # :
안녕하세요. 새해 복 많이 받으세요! MQL5 에 명령을 추가하여 signal="buy"일 때 모든 판매 위치가 닫히고 그 반대의 경우 signal="sell"일 때 모든 구매 위치가 닫히도록 도와주세요. 미리 감사드립니다.

이 기능은 Vladimir Karputov 의 코드에서 가져왔습니다.

 //+------------------------------------------------------------------+
//|                                                ClosePosition.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link        " https://www.mql5.com "
#property version    "1.00"
//---
#define   InpMagic   0
//---
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\AccountInfo.mqh>
//---
CTrade            m_trade;                       // trading object
CSymbolInfo       m_symbol;                     // symbol info object
CPositionInfo     m_position;                   // trade position object
CAccountInfo      m_account;                     // account info wrapper
//---
input double InpLots          = 0.1 ; // Lots
input int     InpTakeProfit    = 50 ;   // Take Profit (in pips)
//---
double             m_adjusted_point;             // point value adjusted for 3 or 5 points
double             m_take_profit= 0.0 ;
//---
string m_name[]= { "Buy" , "Sell" , "CloseBuy" , "CloseSell" };
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- initialize common information
   m_symbol.Name( Symbol ());                   // symbol
   m_trade.SetExpertMagicNumber(InpMagic); // magic
   m_trade.SetMarginMode();
   m_trade.SetTypeFillingBySymbol( Symbol ());
//--- tuning for 3 or 5 digits
   int digits_adjust= 1 ;
   if (m_symbol. Digits ()== 3 || m_symbol. Digits ()== 5 )
      digits_adjust= 10 ;
   m_adjusted_point=m_symbol. Point ()*digits_adjust;
//--- set default deviation for trading in adjusted points
   m_take_profit     =InpTakeProfit*m_adjusted_point;
//--- set default deviation for trading in adjusted points
   m_trade.SetDeviationInPoints( 3 *digits_adjust);
//---
   int u= 15 ;
   for ( int y= 0 ; y< ArraySize (m_name); y++)
     {
      ButtonCreate(m_name[y], 5 ,u, 170 , 15 , 8 );
      u=u+ 17 ;
     }
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   for ( int y= 0 ; y< ArraySize (m_name); y++)
     {
       ObjectDelete ( 0 , Symbol ()+m_name[y]);
     }
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (!RefreshRates())
       return ;
   if ( ObjectGetInteger ( 0 , Symbol ()+ "Buy" , OBJPROP_STATE )!= 0 )
     {
       ObjectSetInteger ( 0 , Symbol ()+ "Buy" , OBJPROP_STATE , 0 );
       double priceAsk=m_symbol.Ask();
       double tpAsk   =m_symbol.Bid()+m_take_profit;
       //--- check for free money
       if (m_account.FreeMarginCheck( Symbol (), ORDER_TYPE_BUY ,InpLots,priceAsk)< 0.0 )
         printf ( "We have no money. Free Margin = %f" ,m_account.FreeMargin());
       else
        {
         //--- open position
         if (m_trade.PositionOpen( Symbol (), ORDER_TYPE_BUY ,InpLots,priceAsk, 0.0 ,tpAsk))
             printf ( "Position by %s to be opened" , Symbol ());
         else
           {
             printf ( "Error opening BUY position by %s : '%s'" , Symbol (),m_trade.ResultComment());
             printf ( "Open parameters : price=%f,TP=%f" ,priceAsk,tpAsk);
           }
        }
     }
   if ( ObjectGetInteger ( 0 , Symbol ()+ "Sell" , OBJPROP_STATE )!= 0 )
     {
       ObjectSetInteger ( 0 , Symbol ()+ "Sell" , OBJPROP_STATE , 0 );
       double priceBid=m_symbol.Bid();
       double tpBid   =m_symbol.Ask()-m_take_profit;
       //--- check for free money
       if (m_account.FreeMarginCheck( Symbol (), ORDER_TYPE_SELL ,InpLots,priceBid)< 0.0 )
         printf ( "We have no money. Free Margin = %f" ,m_account.FreeMargin());
       else
        {
         //--- open position
         if (m_trade.PositionOpen( Symbol (), ORDER_TYPE_SELL ,InpLots,priceBid, 0.0 ,tpBid))
             printf ( "Position by %s to be opened" , Symbol ());
         else
           {
             printf ( "Error opening SELL position by %s : '%s'" , Symbol (),m_trade.ResultComment());
             printf ( "Open parameters : price=%f,TP=%f" ,priceBid,tpBid);
           }
        }
     }
   if ( ObjectGetInteger ( 0 , Symbol ()+ "CloseBuy" , OBJPROP_STATE )!= 0 )
     {
       ObjectSetInteger ( 0 , Symbol ()+ "CloseBuy" , OBJPROP_STATE , 0 );
      ClosePositions( POSITION_TYPE_BUY );
     }
   if ( ObjectGetInteger ( 0 , Symbol ()+ "CloseSell" , OBJPROP_STATE )!= 0 )
     {
       ObjectSetInteger ( 0 , Symbol ()+ "CloseSell" , OBJPROP_STATE , 0 );
      ClosePositions( POSITION_TYPE_SELL );
     }
  }
//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates( void )
  {
//--- refresh rates
   if (!m_symbol.RefreshRates())
     {
       Print ( __FILE__ , " " , __FUNCTION__ , ", ERROR: " , "RefreshRates error" );
       return ( false );
     }
//--- protection against the return value of "zero"
   if (m_symbol.Ask()== 0 || m_symbol.Bid()== 0 )
     {
       Print ( __FILE__ , " " , __FUNCTION__ , ", ERROR: " , "Ask == 0.0 OR Bid == 0.0" );
       return ( false );
     }
//---
   return ( true );
  }
//+------------------------------------------------------------------+
//| Close positions                                                  |
//+------------------------------------------------------------------+
void ClosePositions( const ENUM_POSITION_TYPE pos_type)
  {
   for ( int i= PositionsTotal ()- 1 ; i>= 0 ; i--) // returns the number of current positions
       if (m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
         if (m_position. Symbol ()==m_symbol.Name() && m_position.Magic()==InpMagic)
             if (m_position.PositionType()==pos_type)
              {
               if (m_position.PositionType()== POSITION_TYPE_BUY )
                 {
                   if (!m_trade.PositionClose(m_position.Ticket())) // close a position by the specified m_symbol
                     Print ( __FILE__ , " " , __FUNCTION__ , ", ERROR: " , "BUY PositionClose " ,m_position.Ticket(), ", " ,m_trade.ResultRetcodeDescription());
                 }
               if (m_position.PositionType()== POSITION_TYPE_SELL )
                 {
                   if (!m_trade.PositionClose(m_position.Ticket())) // close a position by the specified m_symbol
                     Print ( __FILE__ , " " , __FUNCTION__ , ", ERROR: " , "SELL PositionClose " ,m_position.Ticket(), ", " ,m_trade.ResultRetcodeDescription());
                 }
              }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ButtonCreate( string name, int Xdist, int Ydist, int Xsize, int Ysize, int FONTSIZE= 12 )
  {
   if ( ObjectFind ( 0 , Symbol ()+name)< 0 )
       ObjectCreate ( 0 , Symbol ()+name, OBJ_BUTTON , 0 , 100 , 100 );
   ObjectSetInteger ( 0 , Symbol ()+name, OBJPROP_COLOR , clrWhite );
   ObjectSetInteger ( 0 , Symbol ()+name, OBJPROP_BGCOLOR , clrDimGray );
   ObjectSetInteger ( 0 , Symbol ()+name, OBJPROP_XDISTANCE ,Xdist);
   ObjectSetInteger ( 0 , Symbol ()+name, OBJPROP_YDISTANCE ,Ydist);
   ObjectSetInteger ( 0 , Symbol ()+name, OBJPROP_XSIZE ,Xsize);
   ObjectSetInteger ( 0 , Symbol ()+name, OBJPROP_YSIZE ,Ysize);
   ObjectSetString ( 0 , Symbol ()+name, OBJPROP_FONT , "Sans Serif" );
   ObjectSetString ( 0 , Symbol ()+name, OBJPROP_TEXT ,name);
   ObjectSetInteger ( 0 , Symbol ()+name, OBJPROP_FONTSIZE ,FONTSIZE);
   ObjectSetInteger ( 0 , Symbol ()+name, OBJPROP_SELECTABLE , false );
  }
//+------------------------------------------------------------------+