[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 239

 
IgorM :

iHighest 및 iLowest는 귀하를 돕고 ZZ 구성을 위한 알고리즘을 읽습니다.

추신: 가장 쉬운 작업은 아니지만 코드는 작지만 알고리즘이 복잡합니다. 코드를 찾을 수 없지만 High: High[iHighest(NULL,0,MODE_HIGH,i)에서 피크를 찾고 있었습니다.

1. "33"이란 무엇입니까?

2. High[ iHighest (NULL,0,MODE_HIGH,i)는 1점을 줍니다. 두 번째를 얻는 방법?

iLowest != 두 번째 점.

 
charter :

1. "33"이란 무엇입니까?

2. 높음[iHighest(NULL,0,MODE_HIGH,i)은 1점을 줍니다. 두 번째를 얻는 방법?


1. 지그재그

2. 그렇지 않습니다 . 상단 라인 에 대해 여러 개의 고점을 찾을 수 있는 기회만 제공하고, 발견된 고점 에서 두 개를 선택 해야 하며 이를 따라 선을 그려야 합니다.

 
charter :

어려움은 이후에 선이 그려질 프로그램 포인트를 찾는 것입니다.

이 점들을 보면 선을 그리는 것이 어렵지 않습니다. 프로그래밍 방식으로 "보는" 방법은 무엇입니까?

감사합니다. 수정했습니다!

 
charter :

어려움은 이후에 선이 그려질 프로그램 포인트를 찾는 것입니다.

이 점들을 보면 선을 그리는 것이 어렵지 않습니다. 프로그래밍 방식으로 "보는" 방법은 무엇입니까?

감사합니다. 수정했습니다!

 

모든 감정가에게 좋은 하루!

EA https://www.mql5.com/ru/code - Ilan의 코드 수정을 도와주세요.

요점은 고문이 모든 주문을 마감하는 사용자 정의 가능한 자산 감소 매개변수를 가지고 있다는 것입니다!

그러나 잠금 위치 기능이 나중에 등장했기 때문에 어드바이저는 구식 방식으로 모든 열린 주문을 닫고 잠금 포즈를 건드리지 않습니다. 따라서 주어진 자본 감소로 모든 주문이 마감되도록 수정하는 방법은 무엇입니까?

다음은 주문을 마감하는 섹션입니다(추세 및 잠금 주문은 다른 매직 넘버를 가집니다). 모든 것이 여기에서 작동합니다. EA는 모든 주문을 마감하지만. 디포가 소진될 때까지 감소가 지정된 시간보다 4배 이상 많습니다.

if (UseEquityStop) {

if (CurrentPairProfit < 0.0 && MathAbs(CurrentPairProfit) > TotalEquityRisk / 100.0 * AccountEquityHigh()) {

CloseThisSymbolAll(MagicNumber);

CloseThisSymbolAll(LMagN) ;

PrintF("Closed All due to Stop Out");

NewOrdersPlaced = FALSE;

락 오더가 숨겨져 있다는 것이 밝혀졌지만 현재 이익과 자본을 계산할 때 그것을 고려하지 않습니까?! 현재 이익을 고려한 섹션은 다음과 같습니다.

double CalculateProfit() {

double ld_ret_0 = 0;

for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;

if (OrderSymbol() == Symbol())

if (OrderMagicNumber() == MagicNumber || OrderMagicNumber() == LMagN )

if (OrderType() == OP_BUY || OrderType() == OP_SELL) ld_ret_0 += OrderProfit();

}

return (ld_ret_0);

다음은 자기자본을 계산하는 세그먼트입니다.

double AccountEquityHigh() {

if ((CountTrades(MagicNumber) == 0) && (CountTrades(LMagN) == 0) ) AccountEquityHighAmt = AccountEquity();

if (AccountEquityHighAmt < PrevEquity) AccountEquityHighAmt = PrevEquity;

else AccountEquityHighAmt = AccountEquity();

PrevEquity = AccountEquity();

return (AccountEquityHighAmt);

내가 추가한 영역을 검은색으로 강조 표시했습니다. 뭘 잊었어????? 왜 안되는거죠?????

 
polsvv :

모든 감정가에게 좋은 하루!

EA https://www.mql5.com/en/code - Ilan의 코드 수정을 도와주세요.

요점은 고문이 모든 주문을 마감하는 사용자 정의 가능한 자산 감소 매개변수를 가지고 있다는 것입니다!

그러나 잠금 위치 기능이 나중에 등장했기 때문에 어드바이저는 구식 방식으로 모든 열린 주문을 닫고 잠금 포즈를 건드리지 않습니다. 따라서 주어진 자본 감소로 모든 주문이 마감되도록 수정하는 방법은 무엇입니까?

다음은 주문을 마감하는 섹션입니다(추세 및 잠금 주문은 다른 매직 넘버를 가집니다). 모든 것이 여기에서 작동합니다. EA는 모든 주문을 마감하지만. 디포가 소진될 때까지 감소가 지정된 시간보다 4 이상 더 많습니다.

if (UseEquityStop) {

if (CurrentPairProfit < 0.0 && MathAbs(CurrentPairProfit) > TotalEquityRisk / 100.0 * AccountEquityHigh()) {

CloseThisSymbolAll(MagicNumber);

CloseThisSymbolAll(LMagN) ;

PrintF("Closed All due to Stop Out");

NewOrdersPlaced = FALSE;

락 오더가 숨겨져 있다는 것이 밝혀졌지만 현재 이익과 자본을 계산할 때 그것을 고려하지 않습니까?! 현재 이익을 고려한 섹션은 다음과 같습니다.

double CalculateProfit() {

double ld_ret_0 = 0;

for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;

if (OrderSymbol() == Symbol())

if (OrderMagicNumber() == MagicNumber || OrderMagicNumber() == LMagN )

if (OrderType() == OP_BUY || OrderType() == OP_SELL) ld_ret_0 += OrderProfit();

}

return (ld_ret_0);

다음은 자기자본을 계산하는 세그먼트입니다.

double AccountEquityHigh() {

if ((CountTrades(MagicNumber) == 0) && (CountTrades(LMagN) == 0) ) AccountEquityHighAmt = AccountEquity();

if (AccountEquityHighAmt < PrevEquity) AccountEquityHighAmt = PrevEquity;

else AccountEquityHighAmt = AccountEquity();

PrevEquity = AccountEquity();

return (AccountEquityHighAmt);

내가 추가한 영역을 검은색으로 강조 표시했습니다. 뭘 잊었어????? 왜 안되는거죠?????

어쩌면 그것이 필요합니까? :

 //===================================================================================
double CalculateProfit() 
{
   double ld_ret_0 = 0 ;
   for ( int cnt = 0; cnt < OrdersTotal (); cnt++) {
       if ( OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol()!= Symbol ())           continue ;
         if (OrderType()> 1 )                     continue ;
         if (OrderMagicNumber()==MagicNumber || 
             OrderMagicNumber() == LMagN)       ld_ret_0 += OrderProfit();
         }
       else if (! OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES)) {
         Print ( "Func: CalculateProfit(), Select Order Error = " , GetLastError ());
         break ;
         }
      }
   return (ld_ret_0);
}
//===================================================================================
 
artmedia70 :

어쩌면 그것이 필요합니까?

따라서 읽을 수 있도록 코드를 붙여넣어야 합니다.
 
eddy :
따라서 읽을 수 있도록 코드를 붙여넣어야 합니다.
야아!?? 그리고 이것들은 당신이 볼 수 있는 모든 차이점???
 
안녕하세요!

이번 여행에서 처음으로 전략 테스터를 사용하는 것뿐입니다. "최적화" 기능의 용도가 무엇인지 이해할 수 없습니다. 최적화할 다른 매개변수를 선택했지만 균형은 변경되지 않습니다. 그는 본질적으로 무엇을 어떻게 최적화하려고 합니까? 전혀 사용하지 않는 사람이 있습니까? :)
 
AndrejFX :
안녕하세요!

전략 테스터를 처음 사용하는 요즘입니다. "최적화" 기능의 용도가 무엇인지 이해할 수 없습니다. 최적화할 다른 매개변수를 선택했지만 균형은 변경되지 않습니다. 그는 본질적으로 무엇을 어떻게 최적화하려고 합니까? 전혀 사용하지 않는 사람이 있습니까? :)

먼저 F1을 사용해보십시오.

사용자 인터페이스 -> 테스터를 찾습니다.

도움이 될 수 있습니다 https://www.mql5.com/ru/articles/mt4/tester