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

 
Valeriy Yastremskiy # :
그런 건 없습니다. 절차적 언어가 아닙니다. 여기에서 프로그램은 위에서 아래로 엄격하게 있습니다. 그리고 함수 호출은 사이클이 있는 모든 것을 결정합니다. 및 OOP)
이해했다. 이해했다. 설명해주셔서 감사합니다.
 
Tretyakov Rostyslav # :

고맙습니다!

 
Tretyakov Rostyslav # :

여기요

     if ( OrderSelect (FindTicketOrder(), SELECT_BY_TICKET,MODE_TRADES)) 
    { 
       if (OrderProfit()<=-x);
        {
         OrderClose(FindTicketOrder(),OrderLots(),OrderClosePrice(),iSlippage, clrPink );
        }
    } 
   else 
     Print (" OrderSelect () вернул ошибку - ", GetLastError ());

티켓에서 주문의 이익을 얻었습니다. -x에 도달하면 티켓을 닫고 싶습니다.

그리고 모든 주문을 연속으로 마감합니다.

제대로 하는 방법을 알려주세요?

 
Alexander Avksentyev # :

여기요

티켓에서 주문의 이익을 얻었습니다. -x에 도달하면 티켓을 닫고 싶습니다.

그리고 모든 주문을 연속으로 마감합니다.

제대로 하는 방법을 알려주세요?

이 시도

 int min_ticket=FindTicketOrder();
     if ( OrderSelect (min_ticket, SELECT_BY_TICKET,MODE_TRADES)) 
    { 
       if (OrderProfit()<=-x);
        {
         OrderClose(min_ticket,OrderLots(),OrderClosePrice(),iSlippage, clrPink );
        }
    } 
   else 
     Print (" OrderSelect () вернул ошибку - ", GetLastError ());

당신이하는 일을 명확하게 전체 기능을 게시하십시오.

 //+------------------------------------------------------------------+
void Функция()
  {
   ...твой код, возможные ошибки ;
  }
//+------------------------------------------------------------------+
 
Alexander Avksentyev # :

여기요

티켓에서 주문의 이익을 얻었습니다. -x에 도달하면 티켓을 닫고 싶습니다.

그리고 나는 모든 주문 을 연속으로 닫습니다.

제대로 하는 방법을 알려주세요?

하나의 OrderClose 호출만 표시되는 경우 모든 주문을 어떻게 마감합니까?

이 코드가 어디에서 호출되는지 전혀 명확하지 않습니다... 로봇의 알고리즘도 불명확합니다...
 
Mihail Matkovskij # :

하나의 OrderClose 호출만 표시되는 경우 모든 주문을 어떻게 마감합니까?

오픈과 동시에 주문을 마감합니다

 
Tretyakov Rostyslav # :
이것은 당신이 원하는 것이 아닙니다. 이것은 예입니다. 나는 반자동 거래에 대한 고문을 만들었습니다.


자신이 쓰고 싶은 것

내가 도울 수 있다면.

그래서 Fast Pending Orders Panel EA에 필요한 것을 더 구체적으로 작성하겠습니다. 이 목록에서 코드 조각을 부분적으로 찾았지만(20%) 나머지는 동료에게 물어봐야 합니다.


1) 셸: 차트에 버튼이 있는 스코어보드로 표시: BUY_lp(낮은 ASK in___pips), SELL_hp(높은 BID in___pips) - 핍 단위 숫자는 스코어보드에 수동으로 입력됩니다. BUY_lt(낮은 ASK는 최대 ____초),SELL_ht( 더 높은 입찰가(최대 ____초) - 초 단위의 숫자가 스코어보드에 수동으로 입력됩니다. CLOSE_buys, CLOSE_sells - 모든 주문을 마감합니다.

a) 차트에 버튼을 생성하기 위한 코드 여기에 배경 개체로 점수 판;

b) 이 스코어보드에 값을 입력하기 위한 코드(핍, 초) 이를 위한 특수 필드

c) 핍 값을 특정 메모리 파일에 저장하고, 여기서 버튼을 누르면 가격이 고정되고 시장에 진입해야 하는 가격만큼 핍 수가 가감됩니다.

d) 선택된 "초" 기간 동안 가격의 최소/최대 값이 지속적으로 계산되는 특정 메모리 파일에 초 값을 저장합니다.

2) 내부: 실행.

a) 현재 가격과 비교하기 위해 BUY_lp 또는 SELL_hp 버튼을 누른 후 파일에서 pips 값과 고정 가격을 읽습니다.

b) 현재 가격과 비교하기 위해 BUY_lt 또는 SELL_ht 버튼을 누른 후 파일에서 초 단위 값과 변경되는 최대/최저 가격을 읽는 단계;

c) 현재 가격이 요구되는 가치와 같을 때 - 시장 진입(주문 개시)

d) 주문 또는 모든 주문을 닫는 버튼, 실행 모드에 따라 버튼은 다르게 작동해야 합니다. "핍별" 항목이 있는 경우 그에 따라 비슷한 수의 핍으로 마감한 후 마감 가격은 "닫기"를 클릭하는 "더 나은" 방향으로 달라야 하지만 "초 단위"인 경우 지정된 기간 동안 최고의 가격이 계산되어야 합니다(이 가격을 기다리는 동안 버튼이 더 낮거나 높으면 안 됨) 눌림).

 
Alexander Avksentyev # :

오픈과 동시에 주문을 마감합니다

네, 그렇습니다. 스프레드로 인해 진입 후 이익은 항상 음수입니다. x 값을 줄여보십시오.

그리고 이익을 포인트로 계산하는 함수를 직접 만드는 것이 좋습니다(물론 예금 통화로 설정할 필요가 없는 경우).
 
Mihail Matkovskij # :

네, 그렇습니다. 스프레드의 존재로 인해 진입 시점에 이익은 항상 음수입니다. x 값을 줄이십시오.

-x 스프레드보다 작음, 인쇄로 출력

 if (OrderProfit()<=-x);

조건이 일치하면 true가 됩니다. 닫기 명령을 추가합니다. 즉시 닫힙니다

 
Mihail Matkovskij # :

네, 그렇습니다. 스프레드로 인해 진입 후 이익은 항상 음수입니다. x 값을 줄여보십시오.

그리고 이익을 포인트로 계산하는 함수를 직접 만드는 것이 좋습니다(물론 예금 통화로 설정할 필요가 없는 경우).

당신은 또한 포인트 수 있습니다, 큰 차이가 없습니다. 난 그냥 쉽게 만들고 싶었어