MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1342

 
Порт-моне тв :

누군가 나를 도와줄까요?

도형의 이름에 신경쓰지 않도록 포인트 날짜가 가장 최근의 도형을 찾을 수 있습니다. 그런 다음 그러한 인물이 발견되면 이미 질문이 있습니다. 어떤 이벤트를 추적해야합니까? 가로, 세로, 위에서 아래로, 아래에서 위로 교차합니다.

OnChartEvent 에서 관찰해야 합니다.

 

안녕하세요!

어떻게 든 이전에 모니터에 표시기 값을 표시하는 코드에 제한(제한)을 추가할 수 있었습니다. 이 표시기는 아무 것도 작동하지 않습니다. 코드에 제한을 두는 것을 도와주시겠습니까? 물론이죠!

고맙습니다!

파일:
Tipu_MACD.mq4  18 kb
 

안녕하세요. 말해 주세요.

기본(첫 번째) 통화가 달러이고 포인트 비용이 일정하지 않고 가격에 따라 달라지는 여러 BUY 포지션이 통화 쌍에 대해 총 이익이 0인 입찰 가격을 계산하는 방법은 무엇입니까?

달러가 인용(두 번째) 통화이고 이러한 함수에서 파생된 상수 핍 값이 있는 쌍의 경우,

 double Null_BUY(){ 
   double null= 0 ; double summ_count= 0 ; double lots_count= 0 ; double position_count= 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--){
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)){
         if (OrderSymbol() == Symbol () ){
             if (OrderType()==OP_BUY ){
               position_count=Bid-((OrderProfit()+OrderSwap()+OrderCommission()) / OrderLots()*MarketInfo( Symbol (), MODE_TICKVALUE))* Point ; 
               summ_count+=position_count*OrderLots();
               lots_count+=OrderLots();
            }
         }
      }
   }
   if (lots_count!= 0 ) null= NormalizeDouble (summ_count/lots_count, Digits );
   return (null);
}
 
Forallf :

말해 주세요. 그래프에 선분을 그립니다. 세그먼트의 시작과 끝 가격을 알아야 합니다. 그것은 할 수 있습니까?

예를 찾았습니다. 이렇게 만들었습니다.

 //+------------------------------------------------------------------+
//|                                                        линия.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link        ""
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {  
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   //Проверим что есть трендовая линия и она в единственном экземпляре:
   if ( ObjectsTotal ( OBJ_TREND )!= 1 )
   { Comment ( "Нарисуйте 1 трендовую линию!" );}

   //Получим ИМЯ трендовой линии:
   for ( int i= 0 ;i< ObjectsTotal ();i++)
     {
       string name= ObjectName (i);
       if (ObjectType(name)== OBJ_TREND )
        {
         datetime t1=ObjectGet(name,OBJPROP_TIME1);
         datetime t2=ObjectGet(name,OBJPROP_TIME2);
         double p1= NormalizeDouble (ObjectGet(name,OBJPROP_PRICE1), Digits );
         double p2= NormalizeDouble (ObjectGet(name,OBJPROP_PRICE2), Digits );
         Comment (p1, "   " ,p2);
        }
     }
  }
//+------------------------------------------------------------------+

첫 번째 세그먼트의 중간에 수평으로 놓일 다른 세그먼트를 만드는 데 도움을 요청합니다. 첫 번째 세그먼트의 길이를 변경하고 이에 따라 두 번째 세그먼트의 위치도 변경해야 합니다. 앞으로 PRICE2 10초에서 추첨합니다.

파일:
EURUSDM12.png  25 kb
 
Forallf :

예를 찾았습니다. 이렇게 만들었습니다.

첫 번째 세그먼트의 중간에 수평으로 놓일 다른 세그먼트를 만드는 데 도움을 요청합니다. 첫 번째 세그먼트의 길이를 변경하고 이에 따라 두 번째 세그먼트의 위치도 변경해야 합니다. 앞으로 PRICE2 10초에서 추첨합니다.

이와 같이 -


369
369
  • 2021.01.07
  • www.youtube.com
лин
 
Iurii Tokman :

이와 같이 -


그래서.
 
Forallf :
그래서.

이 자전거는 표준 터미널 기능입니다.
피보나치 선이라고 불리는

 
Iurii Tokman :

이 자전거는 표준 터미널 기능입니다.
피보나치 선이라고 불리는

예를 들어 저에게 중간입니다. 또 다른 계산된 수준이 있을 것입니다.
 
Forallf :
예를 들어 저에게 중간입니다. 또 다른 계산된 수준이 있을 것입니다.

좌표를 알면 선의 모든 점을 찾을 수 있습니다. 귀하의 경우, 우리는 세그먼트의 시작과 끝의 가격과 날짜를 알고 있습니다. 중간 가격 = (시작 가격 + 끝 가격) / 2도 알 수 있습니다. 또는 당신의 다른 공식.

이제 첫 번째 함수를 사용하여 세그먼트의 한 점의 시간을 찾을 수 있습니다.

 //находит дату точки (координату X) на прямой, на заданную цену (координата Y)
datetime GetPointTimeOnStraight( datetime eTime1, double ePrice1, datetime eTime2, double ePrice2, double ePrice3, string eSymbol, int eTimeFrame)
   {
   if (ePrice2-ePrice1== 0 ) return ( 0.0 );
   //индекс бара соответствующий заданному времени, возможно задавать будующее время
   int eIndex1=(eTime1> iTime (eSymbol,eTimeFrame, 0 ))?( int )(( iTime (eSymbol,eTimeFrame, 0 )-eTime1)/ PeriodSeconds (eTimeFrame)): iBarShift (eSymbol,eTimeFrame,eTime1);
   int eIndex2=(eTime2> iTime (eSymbol,eTimeFrame, 0 ))?( int )(( iTime (eSymbol,eTimeFrame, 0 )-eTime2)/ PeriodSeconds (eTimeFrame)): iBarShift (eSymbol,eTimeFrame,eTime2);
   int eIndex3=eIndex1+( int )((eIndex2-eIndex1)*(ePrice3-ePrice1)/(ePrice2-ePrice1));
   return ( iTime (eSymbol,eTimeFrame,eIndex3));
   }

//находит цену точки (координату Y) на прямой, на заданное время (координата X)
double GetPointPriceOnStraight( datetime eTime1, double ePrice1, datetime eTime2, double ePrice2, datetime eTime3, string eSymbol, int eTimeFrame)
   {
   //индекс бара соответствующий заданному времени, возможно задавать будующее время
   int eIndex1=(eTime1> iTime (eSymbol,eTimeFrame, 0 ))?( int )(( iTime (eSymbol,eTimeFrame, 0 )-eTime1)/ PeriodSeconds (eTimeFrame)): iBarShift (eSymbol,eTimeFrame,eTime1);
   int eIndex2=(eTime2> iTime (eSymbol,eTimeFrame, 0 ))?( int )(( iTime (eSymbol,eTimeFrame, 0 )-eTime2)/ PeriodSeconds (eTimeFrame)): iBarShift (eSymbol,eTimeFrame,eTime2);
   if (eIndex2-eIndex1== 0 ) return ( 0.0 );
   int eIndex3=(eTime3> iTime (eSymbol,eTimeFrame, 0 ))?( int )(( iTime (eSymbol,eTimeFrame, 0 )-eTime3)/ PeriodSeconds (eTimeFrame)): iBarShift (eSymbol,eTimeFrame,eTime3);
   return (ePrice1+(ePrice2-ePrice1)*(eIndex3-eIndex1)/(eIndex2-eIndex1));
   }
 
Aleksei Stepanenko :

글쎄, 당신이 말도 안되는 소리를 동결했다면 나에게 말해야합니다.

감사합니다!!