[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 46

 
bool exit_for = false ;
double max_1 = 0 ;
double max_2 = 0 ;
for ( int k = 0 ; k < Bars ; k + + )
{
	if (	iRSI ( Symbol ( ) , 0 , rsi_period , PRICE_CLOSE , k ) < iRSI ( Symbol ( ) , 0 , rsi_period , PRICE_CLOSE , k + 1 )
		& & iRSI ( Symbol ( ) , 0 , rsi_period , PRICE_CLOSE , k + 1 ) > iRSI ( Symbol ( ) , 0 , rsi_period , PRICE_CLOSE , k + 2 ) 	)
	{
		//Если это первый максимум:
		if ( max_1 = = 0 )
			max_1 = iRSI ( Symbol ( ) , 0 , rsi_period , PRICE_CLOSE , k + 1 ) ; //Записываем номер бара экстремума
		else
		//Если первый найден, записываем второй
		{	
                        max_2 = iRSI ( Symbol ( ) , 0 , rsi_period , PRICE_CLOSE , k + 1 ) ;
                        exit_for = true ;
                } 
	}
        //Выход из цикла, когда найдены оба максимума
        if ( exit_for = = true ) k = Bars + 1 ;  
}
안녕하세요 . 제발 내게 말해줘. RSI 값이 70보다 높은 후 피크를 비교하는 것에 대한 내 질문에 그들은이 솔루션을 제안했습니다.(위 코드)

그러나 그것은 조금 다른 것으로 밝혀졌습니다. 결과적으로 히스토리의 최고값이 검색되지만(예: 지난 날 찾기) 이 기능이 작동하도록 허용된 후 이 조건이 실행될 때까지 기다려야 합니다(예: 첫 번째 막대의 값 > 70) ... 그리고 조건이 충족되면(역사에 없는 막대 이전 > 70, 이후) 첫 번째 Makim이 두 번째 미만인 경우 - 구매 마감

무엇을 변경해야 하는지 알려주세요.

감사해요
 
xruss писал(а) >>

질문 하나만 더 도와주세요

이력 주문을 선택한 후 유형을 결정하는 방법(구매 또는 판매 주문이 마감되었는지 여부)?

 // ищем самый последний закрытый ордер
for ( i = OrdersHistoryTotal ( ) ; i > = 0 ; i - - ) {
   if ( OrderSelect ( i , SELECT_BY_POS , MODE_HISTORY ) ) {
     if ( OrderSymbol ( ) = = Symbol ( ) ) {
       if ( OrderMagicNumber ( ) = = MagicNumber ) {
         if ( OrderCloseTime ( ) ! = 0 ) {
           if ( OrderCloseTime ( ) > time ) {
            time   = OrderCloseTime ( ) ;
            tikcet = OrderTicket ( ) ;
            profit = OrderProfit ( ) ;
            type   = OrderType ( ); <-----
           }
         }
       }
     }
   }
}
 
Roger >> :
당신에게 하나의 변수가 선언되고 다른 변수를 사용하려고 합니다.

으아아아아아아아아아아아아아아아아아아아아아아...... 세묜 세메니치!!!!!!!!!!!!!!!!!!!!!!!! 글쎄, 그들은 즉시 말했다 ....... 그렇지 않으면 늙음은 기쁨이 아니지만 젊음은 역겹습니다 .....

쌈빠아씨부우!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

말해주세요
주문이 정지 또는 이익으로 마감되었는지에 대한 명확한 이해가 필요합니다.
나는 변수 priceprofitbuy 및 pricestopbuy를 만들었습니다.
주문 보내기 전에 pricebuy = 물어보고 pricebuy에서 주문하고 성공하면 pricebuy 가격을 기반으로 priceprofitbuy 및 pricestopbuy를 경고하고 기억합니다.
그런 다음 priceprofitbuy >= Bid 및 pricestopbuy <= Bid 조건으로 내가 닫은 방법을 확인합니다 - 이익 또는 정지
그러나 사이클 동안 Bid가 Take Profit 수준에 도달하여 주문이 마감되었지만 사이클이 priceprofitbuy >= Bid에 도달하는 동안 Bid가 작아지고 사이클이 더 이상 작동하지 않습니다.

질문 - 주문이 이익으로 마감되었음을 어떻게 든 명확하게 결정할 수 있습니까 ???
변수에 주문 티켓 의 번호를 할당 한 다음 히스토리에서 이익을 확인하려고 시도했지만 히스토리에서 티켓에 대한 주문은 선택되지 않습니다. 히스토리는 정산에서만 작동합니다.

 
gramp >> :

나는 priceprofitbuy 및 pricestopbuy 변수를 만들었습니다.
주문 보내기 전에 pricebuy = 물어보고 pricebuy에서 주문하고 성공하면 pricebuy 가격을 기반으로 priceprofitbuy 및 pricestopbuy를 경고하고 기억합니다.
그런 다음 priceprofitbuy >= Bid 및 pricestopbuy <= Bid 조건으로 내가 닫은 방법을 확인합니다 - 이익 또는 정지
그러나 사이클 동안 Bid가 Take Profit 수준에 도달하여 주문이 마감되었지만 사이클이 priceprofitbuy >= Bid에 도달하는 동안 Bid가 작아지고 사이클이 더 이상 작동하지 않습니다.

질문 - 주문이 이익으로 마감되었음을 어떻게 든 명확하게 결정할 수 있습니까 ???
변수에 주문 티켓의 번호를 할당 한 다음 히스토리에서 이익을 확인하려고 시도했지만 히스토리에서 티켓에 대한 주문은 선택되지 않습니다. 히스토리는 정산에서만 작동합니다.

정확하지 않음:

포지션은 명시된 가격이 아니라 슬리피지(보통 최악)로 열릴 수 있습니다.

이전에 OrderSelect(...)를 사용하여 선택했던 OrderOpenPrice() 함수를 사용하여 미결 주문의 가격을 결정하는 것이 더 정확할 것입니다.

그리고 마감 후 시가와 종가의 차이를 계산하는 것이 훨씬 쉽습니다. 후자는 OrderClosePrice() 함수에 의해 결정됩니다.

OrderType()은 유형(구매/판매)을 반환합니다.

 

xrust에게: 정말 감사합니다.


그러나 마감 주문의 종류가 OP_BUY라면 ㅋ ㅋ((

나는 이렇게 간다:


 int ORDtype;
// ищем самый последний закрытый ордер
for ( i = OrdersHistoryTotal ( ) ; i > = 0 ; i - - ) {
   if ( OrderSelect ( i , SELECT_BY_POS , MODE_HISTORY ) ) {
     if ( OrderSymbol ( ) = = Symbol ( ) ) {
       if ( OrderMagicNumber ( ) = = MagicNumber ) {
         if ( OrderCloseTime ( ) ! = 0 ) {
           if ( OrderCloseTime ( ) > time ) {
            time   = OrderCloseTime ( ) ;
            tikcet = OrderTicket ( ) ;
            profit = OrderProfit ( ) ;
            ORDtype   = OrderType ( ); <-----
           }
         }
       }
     }
   }
}
// торг условия
if(ORDtype=1)&&....

그 상태 에서 주문 유형 이 OP_BUY이면 blablabla?

 
xruss >> :

if(ORDtype=1)&&....

그 상태에서 주문 유형이 OP_BUY이면 blablabla?

해야한다:

if(ORD유형 == 1)&&....

 
Everlost >> :

해야한다:

if(ORD유형 == 1)&&....

그리고 기록이 없는 경우 - 제 경우에는 ORDtype이 ==0이 될까요?

 
xruss >> :

그리고 기록이 없는 경우 - 제 경우에는 ORDtype이 ==0이 될까요?

변수를 선언할 때 지정된 값과 동일합니다. 귀하의 경우 0에 명시적인 할당이 없었기 때문입니다. 그건 그렇고, 나는 이전 게시물에서 당신이 OP_BUY 주문을 선택하고 싶어한다는 것을 눈치채지 못했습니다. 정확히 0은 이 상수에 해당하고 1은 OP_SELL입니다. 따라서 값이 -1인 ORDtype 변수를 선언하는 것이 좋습니다.

int ORDtype=-1;

또한 어떤 값이 작업 유형에 해당하는지 혼동하지 않도록 다음과 같은 조건에서 지정할 수 있습니다.


if (ORDtype==OP_BUY) ...

 
Everlost >> :

변수를 선언할 때 지정된 값과 동일합니다. 귀하의 경우 0에 명시적인 할당이 없었기 때문입니다. 그건 그렇고, 나는 이전 게시물에서 당신이 OP_BUY 주문을 선택하고 싶어한다는 것을 눈치채지 못했습니다. 정확히 0은 이 상수에 해당하고 1은 OP_SELL입니다. 따라서 값이 -1인 ORDtype 변수를 선언하는 것이 좋습니다.

int ORDtype=-1;

또한 어떤 값이 작업 유형에 해당하는지 혼동하지 않도록 다음과 같은 조건에서 지정할 수 있습니다.


if (ORDtype==OP_BUY) ...

그리고 내역에 매도 주문이 있었고 Expert Advisor가 이를 마감했다면(내역 유형에서 해당 주문의 마감은 t/p 또는 s/l로 표시됩니다. 마지막으로 간주되지 않을까요?) 원하는 효과를 얻지 못함((

사유: