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

 
LSM :
내 질문을 수정하고 코드를 추가했습니다. 주기가 있습니다. 이것이 루프에서 일어날 때 내가 무엇을 얻을 것인지는 분명하지 않습니다.
거기에 모든 것이 분명하다
예를 들어, 주기에서 표시기는 15번째로 계산되었습니다. 5분 캔들
15 + 1에서 값을 가져오는 동안. 15분 촛불 중 16개.


 
LSM :

누군가에게 유용한 경우를 대비하여 내 질문에 답하겠습니다.

좋아요.
 

안녕하세요.

말해줘, 아이디어가 떠올랐는데, 어느 쪽에서 "나는 따라잡지 않아"까지 접근해야 한다.

표시기가 있으며 서버에서 호스팅되는 CSV 파일의 특정 계정 번호 목록에 대한 액세스가 열렸습니다.

이 특정 사용자의 차트에 표시되도록 목록에서 특정 계정에 대한 메시지를 작성하는 것이 기술적으로 가능합니까?

예를 들어 CSV에서 계정 번호를 지정하고 "Hello ..."와 같은 텍스트를 작성하면 사용자가 차트에서 볼 수 있습니까? 이것이 가능하다면 "파기"할 방향은 무엇입니까? 감사해요...

 

안녕하세요. mql4 구문의 일부 기능을 이해하는 데 도움을 주시겠습니까? 추세에 따라 거래 하기 위한 어드바이저를 작성 하는 아이디어가 있습니다. 예를 들어, 주문 개시 레벨에서 150포인트의 스탑과 50의 테이크가 있는 긴 라인을 입력한 다음 가격이 tp에 도달하면, 새로운 구매는 150의 스탑으로 시작되고 이익을 얻습니다 - 50, 그리고 손절 에 의해 녹아웃되면 롱의 경우와 동일한 위험 / 이익 비율로 판매가 수행됩니다. 이러한 논리로 코드를 작성하려고 시도했지만 어드바이저가 테스트 중에 트랜잭션을 전혀 수행하지 않기 때문에 성공하지 못했습니다.

 double b, difference;
int ticket;

int OnInit ()
{
   b= Bid ;
   return (b);
}

void OnTick ()
{
   difference = Bid -b;
   if ( OrdersTotal ()== 0 )
   {
       if (difference== 150 * Point )
      {
         ticket= OrderSend ( Symbol (), OP_BUY , 1 , Ask , 0 , Ask - 150 * Point , Ask + 50 * Point , 0 );
         if (difference== 0 ){b= Bid + 150 * Point ;}
             if (ticket< 0 )
            {
               Print ( "lose" );
            }
      }
       if (difference== 200 * Point ){b= Bid - 150 * Point ;}

       if (difference==- 150 * Point )
      {
         ticket= OrderSend ( Symbol (), OP_SELL , 1 , Bid , 0 , Bid + 150 * Point , Ask - 50 * Point , 0 );
         if (difference== 0 ){b= Bid - 150 * Point ;}
             if (ticket< 0 )
            {
               Print ( "lose" );
            }
      }
       if (difference==- 200 * Point ){b= Bid + 150 * Point ;}
   }
}
Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Для разработки торговых систем в платформу встроен собственный язык программирования MetaQuotes Language 5 ( MQL5 ), среда разработки MetaEditor и...
 
MosheDayan :

안녕하세요.

말해줘, 아이디어가 떠올랐는데, 어느 쪽에서 "나는 따라잡지 않아"까지 접근해야 한다.

표시기가 있으며 서버에서 호스팅되는 CSV 파일의 특정 계정 번호 목록에 대한 액세스가 열렸습니다.

이 특정 사용자의 차트에 표시되도록 목록에서 특정 계정에 대한 메시지를 작성하는 것이 기술적으로 가능합니까?

예를 들어 CSV에서 계정 번호를 지정하고 "Hello ..."와 같은 텍스트를 작성하면 사용자가 차트에서 볼 수 있습니까? 이것이 가능하다면 "파기"할 방향은 무엇입니까? 감사해요...

계정 번호로 서버에 게시물 요청 보내기

 IntegerToString ( AccountInfoInteger ( ACCOUNT_LOGIN )

서버에서 CSV 파일의 모든 행으로 수신 번호를 확인하고 일치하는 경우 파일의 이 행에서 터미널에 대한 응답으로 메시지를 보냅니다. 터미널에서 서버의 응답을 읽어 차트에 표시하는 일만 남았습니다.

일반적으로 이러한 것들은 파일보다 MySQL에서 구현하기가 더 쉽습니다.

 
Maxim235v34 :
그리고 네, 어렵지 않다면 이 포럼에서 줄 간격을 줄이는 방법을 알려주세요.

먼저 텍스트 파일(메모장에서)에 쓴 다음 클립보드를 통해 복사합니다. 이렇게 됩니다

 double b, difference;
int ticket;

int OnInit ()
{
   b= Bid ;
   return (b);
}

void OnTick ()
{
   difference = Bid -b;
   if ( OrdersTotal ()== 0 )
   {
       if (difference== 150 * Point )
      {
         ticket= OrderSend ( Symbol (), OP_BUY , 1 , Ask , 0 , Ask - 150 * Point , Ask + 50 * Point , 0 );
         if (difference== 0 ){b= Bid + 150 * Point ;}
             if (ticket< 0 )
            {
               Print ( "lose" );
            }
      }
       if (difference== 200 * Point ){b= Bid - 150 * Point ;}

       if (difference==- 150 * Point )
      {
         ticket= OrderSend ( Symbol (), OP_SELL , 1 , Bid , 0 , Bid + 150 * Point , Ask - 50 * Point , 0 );
         if (difference== 0 ){b= Bid - 150 * Point ;}
             if (ticket< 0 )
            {
               Print ( "lose" );
            }
      }
       if (difference==- 200 * Point ){b= Bid + 150 * Point ;}
   }
}
OnInit() 함수에 대해 읽기 - 커서를 위에 놓고 F1 키를 누릅니다 . int라는 단어가 앞에 있으므로 함수는 정수 값을 반환합니다. 그리고 double 유형 의 값을 반환하려고 합니다. OnInit() 함수 의 실행 결과는 터미널의 실행 서브시스템에 의해 분석되며 이 값은 거의 필요하지 않습니다.
 
LRA :

먼저 텍스트 파일(메모장에서)에 쓴 다음 클립보드를 통해 복사합니다. 이렇게 됩니다

고맙습니다. 알겠습니다.

OnInit() 함수에 대해 읽기 - 커서를 위에 놓고 F1 키를 누릅니다 . int라는 단어가 앞에 있으므로 함수는 정수 값을 반환합니다. 그리고 double 유형 의 값을 반환하려고 합니다. OnInit() 함수 의 실행 결과는 터미널의 실행 서브시스템에 의해 분석되며 이 값은 거의 필요하지 않습니다.
그런 다음 의도한 것을 구현하기 위해 어떤 유형의 이벤트 핸들러를 사용해야 하는지 -
프로그램 시작 시 가격 값을 고정하고 향후 계산은 무엇을 기준으로 합니까?
int OnInit에 있는 모든 것을 제거하고 처음에 varStart 변수를 추가하여 OnTick을 무효화하기 위해 다음을 작성하려고 했습니다.
if(varStart==0)
{
b=입찰가;
varStart=1;
}
결과는 변경되지 않았습니다.
 

포인터가 있는 함수가 있습니다.


  TickReturn *returntick( int period, int timeposition)
   {
      TickReturn *returntick = new TickReturn();
       MqlRates rates[];
       MqlTick last_tick;
      
       if ( SymbolInfoTick (symbol,last_tick)){}
       else Print ( "SymbolInfoTick() failed, error = " , GetLastError ());
      
       //int timeposition=0;
       ArraySetAsSeries (rates, true );
       ArrayResize (rates, 1 );
       int copied= CopyRates (symbol,period,timeposition, 1 ,rates);
      
      returntick.curtime = rates[ 0 ].time;
      returntick.open = rates[ 0 ].open;
      returntick.close = rates[ 0 ].close;
      returntick.high = rates[ 0 ].high;
      returntick.low = rates[ 0 ].low;
      returntick.priceask = last_tick.ask;
      returntick.pricebid = last_tick.bid;
      
       return (returntick);

   } 

나는 또한 다른 함수를 호출합니다:


 string timeis = returntick(period, 1 ).curtime;

그리고 그 뒤에있는 메모리를 청소하는 방법은 무엇입니까?

삭제 시(TickReturn); 피연산자 예외 오류가 있습니다.

 
hamsteruser :

포인터가 있는 함수가 있습니다.


나는 또한 다른 함수를 호출합니다:


그리고 그 뒤에있는 메모리를 청소하는 방법은 무엇입니까?

삭제 시(TickReturn); 피연산자 예외 오류가 있습니다.


코드를 올바르게 읽고 있다면 TickReturn이 클래스입니다. 이 클래스의 유형으로 변수에 대한 포인터를 만들었습니다. 그리고 파괴... 클래스 자체??? 포인터를 파괴하고 먼저 포인터가 존재하고 동적인지 확인해야 합니다.

 
Алексей Барбашин :

코드를 올바르게 읽고 있다면 TickReturn이 클래스입니다. 이 클래스의 유형으로 변수에 대한 포인터를 만들었습니다. 그리고 파괴... 클래스 자체??? 포인터를 파괴하고 먼저 포인터가 존재하고 동적인지 확인해야 합니다.


*리턴틱도 소멸되지 않습니다. 나는 단지 무역 터미널 의 배기 에 혼란 스러웠습니다 . 정리되지 않은 메모리에 대해 씁니다.