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

 
Sergstuddek :
친절한 사람들이 배열로 작업하는 방법을 알려주십시오. 막대를 닫고 여는 최대 값과 최소 값을 선택해야합니다. 1.00에서 10.00 사이의 시간 간격으로이 작업을 시도했지만 뭔가 잘못되었습니다. 하지만 뭔가 잘못되었습니다. 반환 '[' - 배열 인덱스는 정수 C:\Program Files\InstaTrader\experts\Ïîáîé19 EUR-JPY.mq4 (61, 21)
무엇이 잘못되었는지, 어떻게 고칠 것인가

다음과 같이 수정

 int MAX()
{
if (Hour()== 10 )
        {
      
         for (i= 0 ; i<= 9 ; i++)
         double MAX1 = High [iHighest( Symbol (), PERIOD_H1 ,MODE_CLOSE,i, 0 )];
        }
         return (MAX1);
        
}

더 이상 오류가 발생하지 않지만 가격을 결정하지도 않고 오히려 결정하지만 올바르게 결정하지 않는 경우 문제가 무엇입니까?

 
Sergstuddek :

다음과 같이 수정

더 이상 오류가 발생하지 않지만 가격을 결정하지도 않고 오히려 결정하지만 올바르게 결정하지 않는 경우 문제가 무엇입니까?

10시에 프로그램을 시작하는 경우 마지막 9개 막대의 최고 가격 으로 막대 색인을 검색합니다. Hour()는 프로그램 시작 시간(서버 시간)입니다.

PS 보다 정확하게는 지수가 아니라 이 바의 최고가(High)입니다.

파일:
 

다른 sl과 tp를 노출하자마자 구매가 작동하지 않고 판매로만 많이 열립니다.

 #define MAGIC 1234
#define IDENT "mo_bidir"

extern int lots = 1 ;
extern int stop_loss = 76 ; //
extern int take_profit = 750 ; //
extern int steps = 5 ; // Шаг отложенных ордеров

int start(){

if ( OrdersTotal () == 0 ){
OrderSend ( Symbol (), OP_BUY, lots ,Ask, 3 , Ask - stop_loss * Point , Bid + take_profit * Point , IDENT, MAGIC, 0 , Blue);
OrderSend ( Symbol (), OP_SELL, lots ,Bid, 3 , Bid + take_profit * Point , Ask - take_profit * Point , IDENT, MAGIC, 0 , Red);
OrderSend ( Symbol (), OP_BUYSTOP, 0.05 *lots,Ask+steps* Point , 3 , Ask + stop_loss * Point , Bid + take_profit * Point , IDENT, MAGIC, 0 , Blue);
OrderSend ( Symbol (), OP_SELLSTOP, 0.05 *lots,Bid-steps* Point , 3 , Bid - take_profit * Point , Ask - take_profit * Point , IDENT, MAGIC, 0 , Red);
}
return ( 0 );
} 
 
samaelfess :

다른 sl과 tp를 노출하자마자 구매가 작동하지 않고 판매로만 많이 열립니다.



Bid + stop_loss 대신 Bid + take_profit이 있습니다. 그리고 OP_BUYSTOP Ask + stop_loss 대신 Ask - stop_loss 및 OP_SELLSTOP - Bid - Bid + take_profit 대신에 보류 중인 것입니다.

그리고 모든 가격이 정상화되지 않았습니다.

추신: 다른 sl 및 tp에서 작동하는지 궁금합니다.

 
감사합니다 더 조심하겠습니다.
 
rigonich :

글쎄, 나는 모른다. OrderSelect() 후 OrderModify() 바로 앞에 체크를 한 후 오류 1을 주는 것을 멈췄지만 그 전에도 항상 나왔습니다.

어떤 테스트를 했는가?
 
Ekburg :

그것은 모든 규범이 있다는 점입니다! 이를 위해 테스트 중에 어떤 값이 수정 기능으로 전송되는지 추적하기 위해 지문을 넣습니다. 모든 것이 정상이고 정지가 다르며 추가로 발생하지 않으며 모든 것이 허용 가능한 서보 내에 있으며 연산자 위의 코드에서 동일한 값을 전송할 수 없습니다. .

다음과 같이 수정하기 전에 확인하십시오.

       double Erunda= 16.0 * Point ; // от 12 для пятизнаков, от 2 для четырех
//
       if ( MathAbs (OrderStopLoss()-sl)<Erunda && MathAbs (OrderTakeProfit()-tp)<Erunda){нет_необходимости_модифицировать;}
       else { модифицировать;}

 
Sepulca :

다음과 같이 수정하기 전에 확인하십시오.


결과는 동일합니다 .. 그러나 이러한 기능은 무엇이며 그 의미는 무엇입니까? 전에 보거나 사용한 적이 없는
 
Desead :

...그리고 두 번째 질문은 주문 삭제에 관한 것입니다. 나는 이미 그것과 싸우는 데 지쳤습니다. 모든 주문은 정상적으로 삭제되지 않으며 그게 전부입니다. 삭제하려는 루프는 다음과 같습니다.

거의 항상 보류 중인 주문 중 일부가 남아 있고 FOR 주기에 WHILE 주기를 추가했지만 여전히 삭제되지 않은 주문이 있습니다. 제거해야 할 지연기가 많이 있습니다. 약 20개 정도입니다. 아마도 이것에 어떤 종류의 어려움이 있습니까?

다음은 보류 중인 주문을 포함하여 주문을 삭제하는 예입니다( 주문으로 삭제됨).

제공한 코드(선택 필터에서)에 모든 지연이 존재하는 것은 아닙니다. 오류의 또 다른 변형: (귀하의 코드에서) 열 때 지연으로 받은 Magic을 확인하십시오.

 
Ekburg :

고맙습니다. 나는 코드베이스에 올라갔고, 뭔가를 찾았고, 그것을 대체하려고 시도했고, 그것을 이렇게 변경했고, 그것을 읽고, 수천 줄의 프로 코드를 구문 분석했으며 수정할 때 오류 1을 제공했을 뿐만 아니라 그게 다야 악마는 무엇을 해야 하는지 알고 있습니다. 글을 쓰면서 어드바이저의 차후 업무에 여러 가지 어려움을 겪기도 했지만 스스로 해결하려고 하고 그렇지 않으면 정상적인 경험을 하지 못하고 참고 문헌을 읽고 교과서를 다시 읽고 문제를 푼다고 생각하기 시작했습니다. 시작할 때와는 조금 다르지만 혼자서 이 문제를 해결할 수 있습니다. 잘 되지 않아 전문가 여러분께 의뢰했습니다! Trailin은 EA가 작동할 필요가 없다면 쓰지 않을 것입니다 :)
(당신이 모든 것을 다시 읽거나 "그렇게 읽습니다") 당신을 믿지 말자 - 오류 1번에 대한 질문은 교과서에서 다루고 있으며 포럼에서 반복적으로 논의되었습니다. 여기 에서 답을 찾으십시오.
사유: