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

 
gyfto :

이 표현을 단순화하는 방법은 무엇입니까?

이것은 MetaQuotes의 ADX 알고리즘에서 가져온 것입니다. MetaQuotes 자체는 다음 회전율을 사용합니다.

- 그것을 단순화하는 방법?


그리고 가장 간단한 옵션이 당신에게 적합하지 않은 이유는 무엇입니까?

z= 0 ;
if (y>x && y> 0 ) z=y;
 
Roger :


그리고 왜 가장 간단한 옵션이 당신에게 적합하지 않습니까?


때로는 문제를 다른 각도에서 바라볼 필요가 있습니다. 바로, 감사합니다.
 
gyfto :

호즈, 와이 여기서 불을 끈 상태에서 더 짧게 하면 어떨까 하는 생각이 들었다. 참조: 변수를 넣으면

cnt=cnt+step이 있습니다. 여기서

그러나 1=cnt/cnt, a -cnt=cnt/(-1), 차이는 분모에만 있습니다. 이제 x^0=1, x^1=x, 즉 표시기에 부울 변수 _if를 넣을 수 있습니다. 단계= cnt/a*(cnt^_if) ; 어디

그러나 ±a는 2*_if-1과 같습니다. 즉,

또는 단순화


와우, 당신은 그것을 단순화했습니다. 나는 당신의 논리를 이해하지 못했습니다.
 
나는 우리가 아래로 갈 것이라는 것을 이해합니다... :-)))
 
zoritch :
나는 우리가 아래로 갈 것이라는 것을 이해합니다... :-)))

나도 내가 아무것도 이해하지 못했다는 것을 깨달았다. 저 아이콘들도 이해가 안가네요.. :)
 
hoz :

한 기호의 막대가 올라갑니다. 강세.

 int LastCandlesType( int trend)
{
   int cnt,                             // Счётчик идущих друг за другом свечей с требуемыми признаками

   for ( int i=i_AnyBarsToHistory; i>= 1 ; i--)
   {
       if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt)     // Если бар соответствует требуемым признакам..
          cnt++;                                                                     // .. прибавим 1 к счётчику

       if (Close[i] < Open[i])                                                         // Если бар, не соответствует основному признаку..
          cnt = 0 ;                                                                   // .. счётчик обнуляем
      
/*      if (i == 1)
      Print("i = ", i,"; cnt = ", cnt);*/
   }

   if (cnt == 3 )                                                                     // Если 5 баров вподряд бычьи..
     return (REQUIRED_SEQUENTIAL_CANDLE_GOT);                                         //..Выходим из функции
}

현재 가정된 주요 추세를 전송하는 역할을 하는 이 함수에 추세 매개변수를 전달할 때 이 매개변수를 기반으로 추가 계산이 수행되도록 만드는 방법.

저것들. trend == down 이면 루프의 함수는 지금과 같고, trend == up 이면 루프에서 Open[i]Close[i] 를 바꾸어 조건을 만족시켰습니다. 왜냐하면 이 경우 바의 종가는 이미 시가보다 낮으므로 그 차이는 마이너스 기호가 됩니다.

 int LastCandlesType( bool trend) //trend равен 1 (бычий) или 0 (медвежий)
   int cnt,                             // Счётчик идущих друг за другом свечей с требуемыми признаками

   for ( int i=i_AnyBarsToHistory; i>= 1 ; i--)
   {
       if (( 2 *trend- 1 )*(Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt)     // Если бар соответствует требуемым признакам..
          cnt++;                                                                     // .. прибавим 1 к счётчику

       if (( 2 *trend- 1 )*(Close[i] - Open[i]) < i_sizeOfSequentialCorrectionBar * pt)     // Если бар, не соответствует основному признаку..
          cnt = 0 ;                                                                   // .. счётчик обнуляем
      
/*      if (i == 1)
      Print("i = ", i,"; cnt = ", cnt);*/
   }

   if (cnt == 3 )                                                                     // Если 5 баров вподряд бычьи..
     return (REQUIRED_SEQUENTIAL_CANDLE_GOT);                                         //..Выходим из функции
}

아니면 단순화하자

 int LastCandlesType( bool trend) //trend равен 1 (бычий) или 0 (медвежий)
   int cnt,                             // Счётчик идущих друг за другом свечей с требуемыми признаками

   for ( int i=i_AnyBarsToHistory; i>= 1 ; i--)
   {
       bool _if=(( 2 *trend- 1 )*(Close[i] - Open[i])>=i_sizeOfSequentialCorrectionBar * pt); cnt=cnt+cnt/(( 2 *_if- 1 )* MathPow (cnt, _if));
      
/*      if (i == 1)
      Print("i = ", i,"; cnt = ", cnt);*/
   }

   if (cnt == 3 )                                                                     // Если 5 баров вподряд бычьи..
     return (REQUIRED_SEQUENTIAL_CANDLE_GOT);                                         //..Выходим из функции
}

여기서 Δ는 차이를 의미합니다. Close[i]는 Open[i]이고 ^는 지수 기호입니다. const - 주어진 표현식의 상수, 즉 i_sizeOfSequentialCorrectionBar * pt, 표준 수학 표기법은 아무 것도 발명하지 않았습니다. 2*bVar-1은 ±1 과 유사합니다. 여기서 bVar는 모든 bool 변수입니다. 그리고 2*bVar-1 표현식은 0과 1이 아닌 -1과 +1의 값을 취합니다. ≥는 표준 수학 표기법이기도 한 MQL4 >=입니다. 단계 - 단계, 즉. cnt++에서 보폭은 1이고 cnt=0에서 보폭은 -cnt입니다. 표기법에서 명확하지 않은 것은 무엇입니까?

 
누가 MT4가 무료 로그를 자동으로 삭제하도록(또는 전혀 생성하지 않도록) 알려줄 수 있습니까? 그런 다음 5개의 문자가 있는 일부 DC에서는 이러한 로그가 매일 엄청난 크기(각 1.6GB)로 증가 하고 VPS 의 공간이 제한됩니다. ATP를 미리.
 
M2012K :
누가 MT4가 무료 로그를 자동으로 삭제하도록(또는 전혀 생성하지 않도록) 알려줄 수 있습니까? 그런 다음 5개의 문자가 있는 일부 DC에서는 이러한 로그가 매일 엄청난 크기(각 1.6GB)로 증가하고 VPS의 공간이 제한됩니다. ATP를 미리.

직접 할 수 있습니다.

라이브러리1 , 라이브러리2 .

==============

그러나 터미널에서 연 마지막(현재) 파일입니다. 제거하기가 쉽지 않습니다. 하지만 처음에 녹화된 콘텐츠는 삭제할 수 있습니다.

로깅이 비활성화되었습니다.

==============

1. 파일 폴더에 대한 로그(library1)가 있는 폴더에 대한 심볼릭 링크를 생성합니다.

2. MQL4를 사용하여 불필요한 파일을 모두 삭제합니다.

3. MQL4를 사용하여 현재 파일을 엽니다. 필요에 따라 편집하십시오.

4. 파일을 닫습니다.

5. 링크를 제거할 수 있습니다. 삭제하지 않을 수 있습니다. 그러면 유용할 것입니다.

==============

스크립트 파일(BAT)을 생성하고 Expert Advisor에서 실행할 수도 있습니다. 스크립트는 위와 동일합니다. 링크를 생성하지 않고 만. 물론 Windows 도구를 사용하여 파일 작업.

 
M2012K :

누가 MT4가 무료 로그를 자동으로 삭제하도록(또는 전혀 생성하지 않도록) 알려줄 수 있습니까?

그런 다음 5개의 문자가 있는 일부 DC에서는 이러한 로그가 매일 엄청난 크기(각 1.6GB)로 증가하고 VPS의 공간이 제한됩니다. ATP를 미리.

무엇의 로그?

전문가 오류?

 

여기요! 원시 로봇을 완성하는 데 도움이 필요합니다. 먼저 도움이 필요한 곳과 이유를 명확하게 하기 위해 가장 간단한 전략을 설명하겠습니다.

TS의 본질:

1. 시가 MA보다 낮고 종가가 높으면 매수합니다.

2. 시가가 MA보다 높고 종가가 낮으면 매도합니다.

3. 가격이 최고 가격에서 X% 이동한 경우 주문을 닫습니다. 후행 정지와 같은 것이지만 포인트 대신 주문 개시 거리의 X% 및 최적 가격. 그림에 표시된 대로:

AB - 주문 개시부터 최고 가격까지의 거리; BC=AB의 X%; С - 주문 마감.

포인트 1과 2는 프로그램에서 썼습니다.

 extern int period= 50 ;
extern int ma_shift= 0 ;
extern int Magic= 666 ;
extern double lot= 0.1 ;
extern int SL= 150 ;


//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   int kolpos= 0 ;
   double ma= iMA ( NULL , 0 ,period,ma_shift, MODE_SMMA , PRICE_MEDIAN , 0 );
//----
   for ( int pos= 0 ; pos< OrdersTotal (); pos++)
   {
   OrderSelect (pos, SELECT_BY_POS, MODE_TRADES);
   if (OrderSymbol()== Symbol ()&&OrderMagicNumber()==Magic)
   kolpos++;
   }
   if (kolpos== 0 )
   {
 
   if (Open[ 1 ]>ma && Close[ 1 ]<ma)  
   OrderSend ( Symbol (),OP_SELL,lot,Bid, 10 ,Bid+SL* Point , 0 , NULL ,Magic, 0 ,Red);
   if (Open[ 1 ]<ma && Close[ 1 ]>ma)  
   OrderSend ( Symbol (),OP_BUY,lot,Ask, 10 ,Ask-SL* Point , 0 , NULL ,Magic, 0 ,Green);
   
   }
   
   
  
//----
   return ( 0 );
  }

일반적으로 TS(포인트 3)에 대한 주문 마감 기능을 작성하고 기존 코드를 해당 기능에 적용하는 데 도움이 필요합니다.

추신 그리고 나는 TC가 그렇게 뜨겁지 않다는 것을 알고 있습니다.