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

 
законопослушный гражданин # :

우주로 날아가다

먼저 정지한 다음 테이크 후 즉시 우주로 날아갑니다(주문 종료).

내가 이해하는 한 그것은 요점이 아닙니다.

내가 틀렸다면 정정해 주세요: void OnTick()

미결 주문이 없고 신호가 있는 경우 vOrderOpenBuy() / vOrderOpenSell()

그런 다음 void vOrderModify(int iOTi)가 옵니다. 즉, 중지 및 테이크가 설정된 다음 오류 검사가 수행됩니다. 모두.

즉, 실제로 주문이 스톱 또는 테이크에 의해 마감될 때까지 후행 측면에서 어떤 식으로든 이를 수정할 수 없습니다.

예, 실제로 필요하지 않습니다. 스톱과 테이크를 한 번(최대 두 번) 여러 번 움직여야 합니다.

나는 여러 트레일 어드바이저를 분석했습니다. 모든 계획은 귀하와 거의 동일합니다.

어떻게 구현할지 아직 고민 중입니다.

수정됨

 2021.12 . 24 21 : 31 : 12.245 2021.11 . 01 00 : 00 : 00    111 inputs: Lot= 0.01 ; StopLoss= 200 ; TakeProfit= 400 ; Slippage= 3 ; Magic= 1 ; K_Martin1= 2 ; K_Martin2= 2 ; K_Martin3= 2 ; OrdersClose= 5 ; OrdersClose2= 5 ; DigitsLot= 2 ; PeriodMA= 14 ; MovingShift= 1 ; 
2021.12 . 24 21 : 31 : 12.292 2021.11 . 01 00 : 05 : 00    111 EURUSD,M5: open # 1 buy 0.01 EURUSD at 1.15583 ok
2021.12 . 24 21 : 31 : 12.292 2021.11 . 01 00 : 05 : 00    111 EURUSD,M5: modify # 1 buy 0.01 EURUSD at 1.15583 sl: 1.15383 tp: 1.15983 ok
2021.12 . 24 21 : 32 : 52.782 2021.11 . 01 17 : 37 : 18    111 EURUSD,M5: modify # 1 buy 0.01 EURUSD at 1.15583 sl: 1.15403 tp: 1.16003 ok
2021.12 . 24 21 : 32 : 52.782 2021.11 . 01 17 : 37 : 18    111 EURUSD,M5: Модификации ордера на покупку успешна!
2021.12 . 24 21 : 33 : 39.178 2021.11 . 01 19 : 06 : 30    111 EURUSD,M5: modify # 1 buy 0.01 EURUSD at 1.15583 sl: 1.15433 tp: 1.16013 ok
2021.12 . 24 21 : 33 : 39.178 2021.11 . 01 19 : 06 : 30    111 EURUSD,M5: Модификации ордера на покупку успешна!
2021.12 . 24 21 : 34 : 08.768 2021.11 . 01 20 : 12 : 05   Tester: take profit # 1 at 1.16013 ( 1.16014 / 1.16019 )
2021.12 . 24 21 : 34 : 14.632 2021.11 . 01 20 : 17 : 55   Tester: stop button pressed
파일:
111.mq4  25 kb
 
законопослушный гражданин # :

우주로 날아가다

먼저 정지한 다음 테이크 후 즉시 우주로 날아갑니다 (주문 종료).

그리고 규칙이 당신을 위해 작동하지 않기 때문에 모두:

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

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

Mihail Matkovskij , 2021.12.23 22:01

일반적으로 규칙은 다음과 같습니다.

  • 예상 SL은 주문의 SL보다 작음(수익성이 낮음) - 아무것도 하지 않음
  • 예상 SL은 주문의 SL과 같습니다. 아무 것도 하지 않음
  • 예상 SL이 주문의 SL을 초과했습니다(더 수익성 있음) - 계산된 값으로 SL 수정
트롤 건설에 대한 이러한 규칙은 SL 수준을 계산하기 위한 알고리즘을 사용하여 거의 모든 트롤을 만드는 데 적합합니다.

오래 전에 하고 득점했을 것입니다. 하지만...

나는 그것을 참을 수 없었고 당신을 위해 기성품 예를 찾았습니다 : https://www.mql5.com/en/code/30808

그리고 기사: https://www.mql5.com/ru/articles/134

초심자에게는 어렵지만 주제가 정말 흥미로우면 금방 알아차리실 거라 생각합니다.

Простой трейлинг-стоп
Простой трейлинг-стоп
  • www.mql5.com
Очень простой советник для сопровождения сделок трейлинг-стопом.
 
Tretyakov Rostyslav # :

수정됨

고맙습니다!

void 함수 안에 double을 넣을 수 있다는 것을 몰랐습니다.

 
Mihail Matkovskij # :

그리고 규칙이 당신을 위해 작동하지 않기 때문에 모두:

오래 전에 하고 득점했을 것입니다. 하지만...

나는 그것을 참을 수 없었고 당신을 위해 기성품 예를 찾았습니다 : https://www.mql5.com/en/code/30808

그리고 기사: https://www.mql5.com/en/articles/134

초심자에게는 어렵지만 주제가 정말 흥미로우면 금방 알아차리실 거라 생각합니다.

고맙습니다

 

안녕하세요!!!

Hour() 함수가 마지막으로 알려진 서버 시간 GMT 의 현재 시간 또는 컴퓨터에서 호출된 현재 시간을 반환한다고 말해주세요 ???

 
EVGENII SHELIPOV 의 현재 시간 또는 컴퓨터에서 호출된 현재 시간을 반환한다고 말해주세요 ???

 
Tretyakov Rostyslav # :


질문에 대한 답은 무엇입니까???

 
EVGENII SHELIPOV # :

질문에 대한 답은 무엇입니까???

죄송합니다 당신이 읽을 수 있다고 생각


 
EVGENII SHELIPOV 의 현재 시간 또는 컴퓨터에서 호출된 현재 시간을 반환한다고 말해주세요 ???

그리고 누가 서버 시간 이 필요 하다고 말했습니까?   GMT가 되어야 합니까?

[삭제]  

mt4 및 mt5용 기능 - 시작 시간, 중지 및 .....

 //+------------------------------------------------------------------+
//|                                                   time Start.mq4 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link        " https://www.mql5.com "
#property version    "1.00"
#property strict
//--- input parameters
input datetime InpHoursFrom = D'1970.01.01 02:00' ; // Start (Only time)
input datetime InpHoursTo   = D'1970.01.01 23:00' ; // Stop (Only time)
input bool      InpClose     = true ;                 // Close Time
input datetime InpHoursTo1  = D'1970.01.01 23:00' ; // Close (Only time)
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (TimeStartStop(InpHoursFrom,InpHoursTo))
     {
       Print ( "Start time :" ,InpHoursFrom, " || " , "Stop time :" ,InpHoursTo);
     }
   if (TimeClose(InpHoursTo1))
     {
       if (InpClose)
         Print ( "close_time :" ,InpHoursTo1);
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
bool TimeStartStop( datetime HoursFrom, datetime HoursTo)
  {
//---
   MqlDateTime currTime;
   TimeToStruct ( TimeLocal (),currTime);
   long hour0=currTime.hour* 60 * 60 +currTime.min* 60 +currTime.sec;
   if ((HoursFrom<HoursTo && hour0>=HoursFrom && hour0<HoursTo) ||
      (HoursFrom>HoursTo && (hour0<HoursTo || hour0>=HoursFrom)))
       return ( true );
   return ( false );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
bool TimeClose( datetime HoursTo)
  {
//---
   MqlDateTime currTime;
   TimeToStruct ( TimeLocal (),currTime);
   long hour0=currTime.hour* 60 * 60 +currTime.min* 60 +currTime.sec;
   if (hour0<HoursTo)
       return ( false );
   if (hour0>HoursTo+ 1 * 10 )
       return ( false );
   return ( true );
  }
//+------------------------------------------------------------------+