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

 
Artyom Trishkin # :
부서지다

하지만 질문은 무엇입니까? :)

 
Alexey Viktorov # :

하지만 질문은 무엇입니까? :)

분명히 당신과 Andrei가 트롤링을 중단하기 위해 ...

실제로, 어떤 종류의 비우호적인 분위기가 얻어진다(이미 위에서 언급한 바와 같이). 나는 MQL 문제를 논의하기 위해 여기에 왔습니다. 그러나 나는 MQL에 대해 전혀 읽지 않았습니다. 당신은 무엇입니까, 당신은 할 수 없습니다!

새로운 이민자가 질문이나 무언가를하게하십시오 ... 아니면 그가 두려워 할 것입니까? ... 그는 Andrey와 함께 당신의 srach 사이에서 길을 잃을 것입니다 ... :)
 

좋은 오후에요 여러분.

코드 작성 방법을 알려주세요.
특정 조건에서 다른 방향, 다른 통화 쌍으로 여러 주문을 한 번에 마감합니다. 그러나 간혹 DC로 인해 명령이 실행되지 않고 일부 주문이 열려 있는 경우가 있습니다. 각 주문에 대해 수면 을 처방할 수 있습니다. 하지만 실을 더 짧게 만들고 싶었습니다.

 if ( NormalizeDouble ((MaxOpenSell( 2 ) + MaxOpenBuy( 2 ) + MinOpenSell( 2 ))* Point , Digits ) >= Profit1 && FindLastSell() >= Block 
         && FindLastBuy() >= 1 && MaxOpenSell( 2 ) > 0 && MA1 < MA2)
      {
         LockTicket = 0 ;
         CalProfHis = 0 ;
         bool close =  OrderClose(( int )MaxOpenSell( 5 ),MaxOpenSell( 3 ), Ask, Slippage, clrPink );
              close =  OrderClose(( int )MinOpenSell( 5 ),MinOpenSell( 3 ), Ask, Slippage, clrPink );
              close =  OrderClose(( int )MaxOpenBuy( 5 ),MaxOpenBuy( 3 ), Bid, Slippage, clrBlue );

      }
 
makssub 수면 을 처방할 수 있습니다. 하지만 실을 더 짧게 만들고 싶었습니다.

https://book.mql4.com/ru/trading/orderclose

Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
  • book.mql4.com
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
 
makssub 수면 을 처방할 수 있습니다. 하지만 실을 더 짧게 만들고 싶었습니다.

종료/닫기 조건이 발생하면 어레이에 티켓을 추가하십시오. 그런 다음 배열이 비어 있지 않으면 각 티켓에 대해 OrderClose를 호출하여 반복합니다. 다음으로, 각 티켓의 존재를 확인하고 목록에서 클로징을 제거하십시오. 목록이 비어 있을 때까지 1-3초 간격으로 이러한 작업을 반복합니다.

 

안녕하세요.

작업이 끝나면 고문의 순이익을 계산해야합니다. OnDeinit의 OrdersHistoryTotal() 수에 대해 루프를 실행하고 OrderProfit()을 추가합니다.

이익=이익+주문이익();

그러나 결국 테스터의 보고서에 나온 수익과 다릅니다. 정리하다 보니 주문 부분마다 포인트 비용이 다르다는 걸 알게 되었어요.

왜 이런 일이 발생합니까? 테스터의 스프레드는 수동으로 설정됩니다.

 
AlexandrVV # :

안녕하세요.

작업이 끝나면 고문의 순이익을 계산해야합니다. OnDeinit의 OrdersHistoryTotal() 수에 대해 루프를 실행하고 OrderProfit()을 추가합니다.

이익=이익+주문이익();

그러나 결국 테스터의 보고서에 나온 수익과 다릅니다. 정리하다 보니 주문 부위별로 포인트 비용이 다르다는 걸 알게 되었어요.

왜 이런 일이 발생합니까? 테스터의 스프레드는 수동으로 설정됩니다 .

스왑 및 커미션 추가하는 것을 잊었습니다! 스프레드는 항상 진입 가격과 출구 가격 사이에 있기 때문에 이미 고려됩니다.

 
Mihail Matkovskij # :

스왑 및 커미션 추가하는 것을 잊었습니다! 스프레드는 항상 진입 가격과 출구 가격 사이에 있기 때문에 이미 고려됩니다.

아 맞다! 매우 감사합니다!!! )

 
안녕. 가격이 내가 표시한 특정 수준에 도달하면 전화로 알림을 보내는 스크립트 또는 표시기를 어디에서 찾을 수 있는지 알려주십시오. 항상 단말기를 보고 있지 않아도 되도록.. 감사합니다.
 

문제가 무엇인지 알려주십시오. 코드는 주문을 닫고 주문이 없으면 새 주문을 엽니다.

하지만 어떤 이유로 주문을 1개만 닫고 다음 신호까지 멈춥니다.

2022.01.17 16:22:08.389 2022.01.04 08:00:00 e: 신호 1.1322 < 마감 1.1304 ExistPosSell 0
2022.01.17 16:22:08.389 2022.01.04 08:00:00 e: 신호 1.1322 > 종료 1.1304 ExistPosBuy 1
2022.01.17 16:22:08.366 2022.01.04 04:00:00 e: 신호 1.1325 < 마감 1.1306 ExistPosSell 0
2022.01.17 16:22:08.366 2022.01.04 04:00:00 e: 신호 1.1325 > 종료 1.1306 ExistPosBuy 1
2022.01.17 16:22:08.327 2022.01.04 00:00:00 e: 신호 1.1326 < 마감 1.1296 ExistPosSell 0
2022.01.17 16:22:08.327 2022.01.04 00:00:00 e: 신호 1.1326 > 종료 1.1296 ExistPosBuy 1
2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: 신호 1.1328 < 마감 1.1283 ExistPosSell 0
2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: 마감 #1 매수 0.01 EURUSD에 1.13598, 가격 1.12831

2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: 신호 1.1328 > 종료 1.1283 ExistPosBuy 1
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: 오픈 #4 매수 0.01 EURUSD at 1.13512 ok
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: 신호 1.134 < 마감 1.135 ExistPosSell 0
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: 신호 1.134 > 종료 1.135 ExistPosBuy 1

 if (isNewBar()== true ) {  
if (Signal > clos ) {   //--------------------- МА выше цены закрытия предыдущего бара.
     if (ExistPositions( NULL , OP_BUY, Magic) == true ) //---------------- Если есть позиция BUY то
ClosePosWithMaxProfitInCurrency(); //--------  закрытие одной позиции с максимальным профитом в валюте депозита.
         if (ExistPositions( NULL , OP_BUY, Magic) == False) //----------- если позиции BUY отсутствуют то
   ticket=OpenPosition( NULL ,OP_SELL, NDLot(Lot), 0 , 0 , Magic, Com);} //------------ открываем позицию SELL

if (Signal < clos ) { //--------------------- МА ниже цены закрытия предыдущего бара.
     if (ExistPositions( NULL , OP_SELL, Magic) == true ) //---------------- Если есть позиция SELL то
 ClosePosWithMaxProfitInCurrency(); //---------------------закрытие одной позиции с максимальным профитом в валюте депозита.
         if (ExistPositions( NULL , OP_SELL, Magic) == False)  //----------- если позиции SELL отсутствуют то
  ticket=OpenPosition( NULL ,OP_BUY, NDLot(Lot), 0 , 0 , Magic, Com);} //------------ открываем позицию BUY

} return ;