초보자의 질문 MQL4 MT4 MetaTrader 4 - 페이지 159

 

안녕하세요, 프로그래머에게, 이 전문가 고문을 수정하는 데 도움을 요청합니다.



1. 자동으로 주문을 엽니다.
2. +에 도달하면 초기 로트와 같은 방향으로 오더를 엽니다.
3. 도달 시 - 순서를 반대로 합니다(받은 방향으로 순서를 엽니다 - ).
 
나는 당신에게 건강을 기원합니다, 동료들!
이 문제를 경험한 사람이 있으면 알려주십시오.
1) MT4 어드바이저에서 테스트되었습니다. modify1 주문 오류가 로그에 나타났습니다. 오류 주문 modify1의 원인과 해결 방법은 무엇입니까?
2) 어드바이저를 설치 및 실행할 수 없습니다. 어드바이저를 차트 창으로 옮기고 오른쪽 상단 모서리 에 고정되지 않거나 고정되지만 시작되지 않습니다. 콜로복 대신 직사각형! (스크린샷 참조)
3) ROSA OS(Lunix)에 MT4를 어떻게 설치하나요? c/Program Files (x86)/MT4 에 MT4를 설치했습니다. c/Program Files (x86)/MT4에서 c/users/xxl/AppData/ 및 _c/users/xxl/Application Data/MetaQuotes/로 파일을 복사 해야 합니까? 그렇다면 어떤 파일을 LocalLow 및 Roaming 폴더에 배치해야 하고 어떤 파일을 Terminal 및 WebInstall 폴더에 배치해야 합니까?
확장된 답변 감사합니다! )

 

안녕 모두. 요점은 다음과 같습니다. N 번째 막대에 의해 악어의 교차점이 있습니다. 예를 들어 이 교차점에서 첫 번째 막대의 낮은 부분과 악어 사이의 각도를 찾아야 합니다. 어려움은 막대 수와 가격이라는 두 가지 호환되지 않는 값이 있다는 것입니다. 누군가의 제안대로 그래프의 셀 크기에 맞춰 춤을 추고 싶었다. 그러나 셀의 막대 수가 스케일 변경에 비례하면 가격에는 그러한 비율이 없습니다.

위의 내용을 바탕으로 두 가지 질문이 있습니다.

1. 누군가가 이 문제에 대한 해결책을 만났거나 알고 있을 수 있습니다.

2. 어드바이저는 특정 차트 척도 로 작업합니까, 아니면 순전히 가격으로 작업합니까?

 
Alexander Dubovik :

개발자를 위한 또 다른 메모입니다.

typedef 언어 구성( 뿐만 아니라 typedef 자체의 작동)에 대한 문서는 어리둥절합니다.

typedef char My_Char; - 컴파일하지 않습니다.

문서에서: "C++ 언어의 typedef 키워드 를 사용하면 사용자 정의 데이터 유형 을 만들 수 있습니다 .....". 실례지만, 실제로 MQL이 함수 포인터 선언만 구현한다면 왜 MQL 문서에서 C++를 참조해야 합니까?

MQL4/5에서 typedef는 거세되고 함수 포인터 선언에만 사용되며 다른 용도로는 적합하지 않습니다.


 typedef int (*TFunc)( int , int );

int add( int x, int y) 
{
     return (x+y); 
}

void OnStart ()
{
    TFunc pfunc = add;   
     Print (pfunc( 4 , 5 ));    
}
 
Alex Pirate :

안녕하세요 여러분!

간단한 조언자, 일반적으로 간단하고 뭔가 잘못되었습니다. 오류가 발생합니다. 그런 다음 트롤을 첨부하고 싶지만 열리지도 않습니다... 쓰기 - 'OrderSend'의 반환 값을 확인해야 합니다

그는 왜 더 많은 수표를 보내나요??? 뭐가 잘못 되었 니??? 프로그래머와 여기를 더듬는 사람들이 모두를 돕기 위해 .... 죄송합니다 (((

https://translate.google.ru/?hl=ru&tab=TT#en/ru/return%20value%20of%20'OrderSend'%20should%20be%20checked

Google Переводчик
  • translate.google.ru
Бесплатный сервис Google позволяет мгновенно переводить слова, фразы и веб-страницы с английского на более чем 100 языков и обратно.
 
Alex Pirate :

안녕하세요 여러분!


 
Artyom Trishkin :


고마워, 이것은 알고있다 ... 방금 번역 된 질문을 아래에서 ... 그가 흥미롭게 쓰는 것이 아니라 .. 왜? 코드에 무엇이 잘못 되었습니까 ??? 내가 뭘 잘못 썼어???

 
Alex Pirate :

감사합니다, 이것은 알고 있습니다 ... 바닥에서, 방금 번역 된 질문을했습니다 ... 그가 흥미롭게 쓰는 것이 아니라 .. 왜? 코드에 무엇이 잘못 되었습니까 ??? 내가 뭘 잘못 썼어???

 
Artyom Trishkin :

 extern int     MA_1_Period   = 22 ;
extern int     MA_1_MAShift  = 1 ;
extern int     MA_1_Method   = 1 ;
extern int     MA_1_Price    = 1 ;
extern int     MA_1_Shift    = 0 ;

extern int     MA_2_Period   = 55 ;
extern int     MA_2_MAShift  = 1 ;
extern int     MA_2_Method   = 1 ;
extern int     MA_2_Price    = 1 ;
extern int     MA_2_Shift    = 0 ;

extern int     MA_3_Period   = 163 ;
extern int     MA_3_MAShift  = 1 ;
extern int     MA_3_Method   = 1 ;
extern int     MA_3_Price    = 1 ;
extern int     MA_3_Shift    = 0 ;

extern double lot           = 0.1 ;
extern int     TP            = 60 ;
extern int     SL            = 40 ;
extern int     Slippage      = 5 ;
extern int     Magic         = 888 ;

int timeprev;

//+------------------------------------------------------------------+
int init()
{ 
   if ( Digits == 3 || Digits == 5 )
   {
     TP           *= 10 ;
     SL           *= 10 ;
     Slippage     *= 10 ;
     
   }

   return ( 0 ); 
}
//+------------------------------------------------------------------+
int deinit() 
{
   return ( 0 );
}
//+------------------------------------------------------------------+

int start()
{
   if (timeprev == Time [ 0 ]) return ( 0 );
   timeprev = Time [ 0 ];
   
   double MA_1_1 = iMA ( Symbol (), 0 , MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift);
   double MA_1_2 = iMA ( Symbol (), 0 , MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift);
   
   double MA_2_1 = iMA ( Symbol (), 0 , MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift);
   double MA_2_2 = iMA ( Symbol (), 0 , MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift);
   
   double MA_3_1 = iMA ( Symbol (), 0 , MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift);
   double MA_3_2 = iMA ( Symbol (), 0 , MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift);
     
 //+------------------------------------------------------------------+  
 // покупаем
 
   if (CountBuy() + CountSell() == 0 && MA_1_1 > MA_1_2 && MA_2_1 > MA_2_2 && MA_3_1 > MA_3_2 )
   
      {
         OrderSend ( Symbol (), OP_BUY , lot, Ask , Slippage, SL, TP, "" , Magic, 0 , Green);
      }
// продаём
   
   if (CountBuy() + CountSell() == 0 && MA_1_1 < MA_1_2 && MA_2_1 < MA_2_2 && MA_3_1 < MA_3_2 )
   
      {
         OrderSend ( Symbol (), OP_SELL , lot, Bid , Slippage, SL, TP, "" , Magic, 0 , Red);
      }
          
   return ( 0 );
}
//+------------------------------------------------------------------+
int CountBuy()
{
   int count = 0 ;
   
   for ( int i = OrdersTotal () - 1 ; i >= 0 ; i --)
   {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
      {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () ==  Magic && OrderType () == OP_BUY )
           count++;
      }
   }
   return (count);
}
//+------------------------------------------------------------------+
int CountSell()
{
   int count = 0 ;
   
   for ( int i = OrdersTotal () - 1 ; i >= 0 ; i --)
   {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
      {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () ==  Magic && OrderType () == OP_SELL )
           count++;
      }
   }
   return (count);
}
//+------------------------------------------------------------------+
 
Alex Pirate :

무엇과 무엇을 비교합니까?

   double MA_1_1 = iMA ( Symbol (), 0 , MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift );
   double MA_1_2 = iMA ( Symbol (), 0 , MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift );
   
   double MA_2_1 = iMA ( Symbol (), 0 , MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift );
   double MA_2_2 = iMA ( Symbol (), 0 , MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift );
   
   double MA_3_1 = iMA ( Symbol (), 0 , MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift );
   double MA_3_2 = iMA ( Symbol (), 0 , MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift );
     
 //+------------------------------------------------------------------+  
 // покупаем
 
   if (CountBuy() + CountSell() == 0 && MA_1_1 > MA_1_2 && MA_2_1 > MA_2_2 && MA_3_1 > MA_3_2 )

0 > 00 > 00 > 0인 경우