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

[삭제]  
makssub # :
안녕하세요. 이 코드를 사용하여 모든 주문을 마감합니다. 그러나 나는 그것들이 많다면 모든 것이 닫히지 않는다는 것을 알아차렸습니다. 처음이 아니더라도 모든 것을 닫기 위해 추가할 수 있는 것. 가능하다면 예시일 뿐입니다.

https://www.mql5.com/ru/docs/common/sleep

   if ( AccountInfoDouble ( ACCOUNT_EQUITY )<=TargetLoss || AccountInfoDouble ( ACCOUNT_EQUITY )>=TargetProfit)
     {
       AllClose();
       Sleep ( 1000 );
       AllClose();
       ExpertRemove ();
     }
//---
Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Sleep - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

마지막 질문 )

자신의 고문을 mql 플랫폼에서 Windows 또는 Linux로 이전한 사람. 자는 동안 게임 자체가 영웅을 다운로드할 수 있도록 오랫동안 온라인에서 mu에 대한 스크립트를 작성하는 방법을 설명하겠습니다. 따라서 문제는 누가 고문을 플랫폼 외부로 옮길 수 있느냐는 것입니다. 로봇이 아닌 사람이 거래하는 것과 같습니다.

설명이 잘 되어 있지 않다면 죄송합니다.)

 
makssub # :

마지막 질문 )

자신의 고문을 mql 플랫폼에서 Windows 또는 Linux로 이전한 사람. 자는 동안 게임 자체가 영웅을 다운로드할 수 있도록 오랫동안 온라인에서 mu에 대한 스크립트를 작성하는 방법을 설명하겠습니다. 따라서 문제는 누가 고문을 플랫폼 외부로 옮길 수 있느냐는 것입니다. 로봇이 아닌 사람이 거래하는 것과 같습니다.

설명이 잘 되어 있지 않다면 죄송합니다.)

MetaTrader는 Windows 서버(VDS 또는 VPS)에 설치되고 Expert Advisor가 실행됩니다. 그리고 그게 다야 : 군인은 자고 있고 서비스는 켜져 있습니다 :-)

그리고 사람이 거래하는 척해야 하는 경우(로봇은 그곳에서 허용되지 않음) 거기에서 실행하십시오. 플랫폼은 알고리즘이며 거래가 로봇에 의해 완전히 수행되지 않으면 거래가 수행되는 것으로 계산됩니다. 적극적인 참여.

클리커(사람을 에뮬레이트하는 버튼에서 "클릭"하는 소프트웨어)는 누군가에 의해 사용되지만. 그리고 프리랜서에서는 주기적으로 요청하고 인터넷에 판매되는 것이 있습니다.

 

안녕하세요!

누군가가 다음 주문을 위해 SL TP를 변경하기 위해 고문이나 코드 조각(올빼미 코드에 포함될)을 만났을까요?

0.01 SL= 30 TP=100 많은 주문이 체결되었다고 가정해 보겠습니다.

다음   로트 0.02로 열림   SL=30 TP=95

등.

또는 그것을 설명하는 기능은 무엇입니까?

지금은 이렇게 설정했어요   SLTP:

 //+-----------------------------------------------------------------------------------------------+
//|                                                                    Функция модификации ордера |
//+-----------------------------------------------------------------------------------------------+
void vOrderModify( int iOTi)
  {
   int     iOTy = - 1 ;     // Тип ордера
   double dOOP = 0 ;     // Цена открытия ордера
   double dOSL = 0 ;     // Стоп Лосс
   int     iMag = 0 ;     // Идентификатор советника
   double dSL  = 0 ;     // Уровень убытка
   double dTP  = 0 ;     // Уровень прибыли

// Выберем по тикету открытый ордер, получим некоторые значения
   if ( OrderSelect (iOTi, SELECT_BY_TICKET, MODE_TRADES))
     {
      iOTy = OrderType();
      dOOP = OrderOpenPrice();
      dOSL = OrderStopLoss();
      iMag = OrderMagicNumber();
     }

// Если ордер открыл данный советник, то входим в условие
   if (OrderSymbol() == Symbol () && OrderMagicNumber() == iMag)
     {
// Если Стоп Лосс текущего ордера равен нулю, то модифицируем ордер
       if (dOSL == 0 )
        {
         if (iOTy == OP_BUY)
           {
            dSL = NormalizeDouble (dOOP - StopLoss * Point , Digits );
            dTP = NormalizeDouble (dOOP + TakeProfit * Point , Digits );

             bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0 , clrNONE );
           }

         if (iOTy == OP_SELL)
           {
            dSL = NormalizeDouble (dOOP + StopLoss * Point , Digits );
            dTP = NormalizeDouble (dOOP - TakeProfit * Point , Digits );

             bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0 , clrNONE );
           }
        }
     }
  }
 

여러분, 전문가 여러분, 아무 생각이 나지 않습니다.

여기에 상관없이 고문의 일부가 있습니다. OnInit() 함수에는 두 개의 return 문 이 있습니다.

괄호 안의 숫자 -1과 0을 따라잡을 수 없습니다. 이 숫자는 어디에서 왔으며 중단된 프로그램은 어디로 돌아갑니까?

//| 전문가 초기화 기능 |

//+----------------------------------------------- --------------------+
int OnInit()
{
*****************************************
if(************ || *********)
{
알리다("***************",******(),"!!!");
리턴(-1);
}


**** = *******;
*** = *********;
if(_************ || _********)
{
************;
************;
}
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문적인 초기화 해제 기능 |
 
vladeimirami # :

괄호 안의 숫자 -1과 0을 따라잡을 수 없습니다. 이 숫자는 어디에서 왔으며 중단된 프로그램은 어디로 돌아갑니까?

https://www.mql5.com/ru/docs/event_handlers/oninit

읽다. 0은 성공이고 프로그램은 계속 실행됩니다. 나머지 숫자는 작업의 끝입니다.

Документация по MQL5: Обработка событий / OnInit
Документация по MQL5: Обработка событий / OnInit
  • www.mql5.com
OnInit - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksei Stepanenko # :

https://www.mql5.com/ru/docs/event_handlers/oninit

읽다. 0은 성공이고 프로그램은 계속 실행됩니다. 나머지 숫자는 작업의 끝입니다.

쓰레기. 이해했다. 나는 목록 을주의 깊게 읽지 않았습니다.   ENUM_INIT_RETCODE . 고맙습니다. 초기화에 실패하면 0이 아닌 다른 숫자로 종료됩니다. 적어도 죽은 중심에서 벗어났습니다. 고맙습니다!
Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Функции обработки событий - Функции - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

작업은 건너 뛰는 막대에 대한 기호 차트를 확인하는 것이 었습니다.

이 문제에 대한 해결책이 생각나지 않습니다.

원칙에 따라 대본을 작성해야 합니다. 바패스가 있는 경우 - 인쇄 (날짜), 인쇄 (날짜), 인쇄(날짜)

예를 들어, 스크립트를 M30 차트에 던졌습니다. 47 - Print(date) 인 경우 하루에 48개의 막대가 있어야 합니다.

그것을 쓰는 방법? 플랫폼 간 솔루션이 바람직합니다.

추신: 사용 가능한 전체 기록에 대해 수행해야 합니다.

 

Vitaliy, 건너 뛰는 막대를 평가하는 방법은 무엇입니까? 하루에 48바? 일이 밤 11시에 끝나는 경우도 있고 새벽 2시에 시작하는 경우도 있는데, 루블화를 보면 밤에는 경매가 없다.

일주일에 5일 24시간 근무하는 경우 각 막대를 순서대로 반복하여 순서를 확인합니다. 그러나 존재해서는 안 되는 놓친 막대에 대한 신호가 있을 것입니다.

 
Vitaly Muzichenko 인쇄 (날짜), 인쇄(날짜)

예를 들어, 스크립트를 M30 차트에 던졌습니다. 47 - Print(date) 인 경우 하루에 48개의 막대가 있어야 합니다.

그것을 쓰는 방법? 플랫폼 간 솔루션이 바람직합니다.

추신: 사용 가능한 전체 기록에 대해 수행해야 합니다.

비슷한 작업이 있습니다 - 건너뛴 막대로 기간을 만드는 것입니다. 예를 들어, 하루는 항상 정확히 1440분이 있습니다. 그 부분이 비어 있는지 확인하십시오.

빠르고 깔끔하고 예쁜게 생각나지 않았어요 :-( 그냥 하루의 시작에 배열을 만들고, 0시부터 경과된 분을 계산해서 저렇게 채우세요.

그리고 iBars(current_time, 당일 0:01)와 (current_time-beginning_of_day)/PERIOD_SECONDS를 비교하면 갭이 존재한다는 사실을 알 수 있다.