초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 679

 

나는 Ctrade를 연결하는 로봇을 작성하고 있습니다. 먼저 매 시간이 시작될 때 시장 가격으로 구매 거래를 체결하고 30분 안에 모든 것을 새로운 가격에 판매(판매)할 논리를 놓고 싶습니다. 시장 가격. 테스터에서 테스트 중입니다. 잘못된 주문 유형이 충돌합니다.

SBER 도구, 클라이언트 - 열기. 거래는 실제 및 데모 계정에서 테스트되지 않은 수동 모드로 진행 됩니다.

무엇이 잘못되었을 수 있습니까? 주식시장에서는 시장가격으로 거래를 체결하는 것이 불가능하다는 것이 사실입니까?

 
post_ek :

나는 Ctrade를 연결하는 로봇을 작성하고 있습니다. 먼저 매 시간이 시작될 때 시장 가격으로 구매 거래를 체결하고 30분 안에 모든 것을 새로운 가격에 판매(판매)할 논리를 놓고 싶습니다. 시장 가격. 테스터에서 테스트 중입니다. 잘못된 주문 유형이 충돌합니다.

SBER 도구, 클라이언트 - 열기. 거래는 실제 및 데모 계정에서 테스트되지 않은 수동 모드로 진행 됩니다.

무엇이 잘못되었을 수 있습니까? 주식시장에서는 시장가격으로 거래를 체결하는 것이 불가능하다는 것이 사실입니까?

코드가 없으면 거기에 작성한 내용과 작동하지 않는 이유를 이해하는 것이 불가능합니다.
 
안녕하세요. 어드바이저가 랩톱에서 실행 중이고 절전 모드로 전환된 경우 이 경우 연결된 어드바이저가 작동합니까?
 
Movlat Baghiyev :
안녕하세요. 어드바이저가 랩톱에서 실행 중이고 절전 모드로 전환된 경우 이 경우 연결된 어드바이저가 작동합니까?
그리고 당신은 모든 값의 저널에 인쇄물을 포함시키고 알아냅니다. 인쇄되지 않으므로 작동하지 않습니다.
 
Vitalie Postolache :
그리고 당신은 모든 값의 저널에 인쇄물을 포함시키고 알아냅니다. 인쇄되지 않으므로 작동하지 않습니다.
그렇군요.. 누군가가 경험을 초보자와 공유할 수 있을 거라 생각했습니다.
 
Movlat Baghiyev :
안녕하세요. 어드바이저가 랩톱에서 실행 중이고 절전 모드로 전환된 경우 이 경우 연결된 어드바이저가 작동합니까?

일반적으로 나사는 절전 모드에서 꺼져 있으며,

나는 최근에 서버를 설치했고 3일 만에 컴퓨터가 잠자는 것을 보았습니다. 즉, 쟁기질하지 않았습니다. 모든 고문이 작동하지 않았습니다.

비활성화 된 절전 모드, 모든 것이 정상입니다.

 
Movlat Baghiyev :
그렇군요.. 누군가가 경험을 초보자와 공유할 수 있을 거라 생각했습니다.
글쎄, 내 경험에 따르면 절전 모드에서는 거의 작동하지 않으며 일부 시스템 서비스만 작동합니다.
 
Movlat Baghiyev :
안녕하세요. 어드바이저가 랩톱에서 실행 중이고 절전 모드로 전환된 경우 이 경우 연결된 어드바이저가 작동합니까?

아니요. 작동 안 할 것이다. 전원 설정에서 다음을 설정합니다.

NO 수면 모드!

 
Sergey Gritsay :
코드가 없으면 거기에 작성한 내용과 작동하지 않는 이유를 이해하는 것이 불가능합니다.
//+------------------------------------------------------------------+
//|                                                         Gear.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"

#include <Trade/Trade.mqh>
CTrade  trade;

bool TimeFlag, FLG;
int TimeScale= 50 , TimeInMemory, TimeNow;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
  
   //---Блок получения информации с биржи    
   MqlTick oCurrentTick;
   SymbolInfoTick ( Symbol (), oCurrentTick);
//---Блок определения начала нового временного интервала
   TimeFlag= false ;
   datetime tm= TimeCurrent ();
   MqlDateTime stm;
   TimeToStruct (tm,stm);
   if ( MathMod ( StringToInteger (( string )stm.min),TimeScale)== 0 )
     {
      TimeNow= StringToInteger (( string )stm.min);
     }
   if (TimeNow != TimeInMemory)
     {
      TimeInMemory=TimeNow;
      TimeFlag= true ;
       //Print(_Symbol);
     }
    
     if (TimeFlag)
       {
       if (FLG)
         {
   if (!trade.Buy( 1 , _Symbol ))
     {
       //--- сообщим о неудаче
       Print ( "Метод Buy() потерпел неудачу. Код возврата=" ,trade.ResultRetcode(),
             ". Описание кода: " ,trade.ResultRetcodeDescription());
     }
   else
     {
       Print ( "Метод Buy() выполнен успешно. Код возврата=" ,trade.ResultRetcode(),
             " (" ,trade.ResultRetcodeDescription(), ")" );
     }
         FLG= false ;
         }
       else
         {
         trade.Sell( 1 );
         FLG= true ;
         }
       }
  }
//+------------------------------------------------------------------+
 
post_ek :

당신은 이것을 할 수 없습니다:

bool TimeFlag,FLG;
int TimeScale= 50 , TimeInMemory,TimeNow;

보다 정확하게는 이러한 선언 후에 OnInit()에서 이러한 변수를 명시적으로 초기화( 값 할당 )해야 합니다.

또한 다음과 같이 Sell 메서드에 검사를 부과합니다.

trade.ResultRetcode(),
             " (" ,trade.ResultRetcodeDescription(), ")" );

그리고 한 가지 걸림돌이있을 수 있습니다. 아침에 거래가 시작될 때 첫 번째 초가 아니라 거래가 즉시 진행되지 않습니다. 이 순간에는 오류가 발생할 수 있습니다.

사유: