포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 827

 
Veterros :

마지막 줄에는 많은 괄호가 있습니다. 비어 있는 것을 제거해 보십시오.
대괄호가 많지 않으며 가장 중요한 것은 열고 닫는 것이 동일해야 한다는 것입니다.
 
alexeymosc :

안녕하세요! 함수 외부에서 배열을 선언할 때 오류가 발생하는 이유를 모르겠습니다.

오류: '[' - 잘못된 인덱스 값  

2차원 비동적 배열을 변수 인덱스로 선언하는 방법은 무엇입니까?

정적 대신 const를 설정하려고했습니다. [][]도 시도했습니다. 여전히 오류

교과서에서 이 문제를 한 번에 볼 수 있는 곳을 클릭하십시오.  

값이 변수에 할당 되는 순서에도 불구하고 프로그램이 실행될 때까지 초기화되지 않은 상태로 유지되기 때문입니다. 즉, int Oninit()이 시작될 때까지 배열의 차원으로 사용하는 변수는 초기화되지 않습니다. 이 줄을 Oninit()에 전달하면 모든 것이 작동합니다...
 

내 가장 간단한 코드는 주문을 열지 않습니다.

로그는 다음과 같이 말합니다: '1419717': 주문 매수 0.01 EURUSD 시장 개시 sl: 1.13720 tp: 1.13842 실패 [유효하지 않은 S/L 또는 T/P]

여기(포럼에서) 그들은 힌트를 주었습니다. "Stops and Takes는 정상화되어야 합니다!"

이 문구가 의미하는 바를 이해하지 못합니까?

컴파일러는 오류나 경고를 생성하지 않습니다. 테스트할 때 모든 것이 작동합니다. 어디에서 무엇을 읽어야 할지 모르겠습니다.

설명하는 데 시간이 오래 걸리면 손절매를 정상화하고 차익을 얻는 방법을 읽을 수 있는 링크를 보내주십시오.

미리 감사드립니다.

 double Lots= 0.01 ;
double TakeProfit= 100 ;
double StopLoss= 10 ;
int tk= 0 ;

void start()
{
   if ( OrdersTotal ()== 0 )
      {
         tk= OrderSend ( Symbol (),OP_BUY,Lots,Ask, 3 ,Bid-StopLoss* Point ,Ask+TakeProfit* Point , 0 , 0 , 0 ,Green);
         if (tk< 0 ) 
         {
             Print ( "OrderSend завершилась с ошибкой #" , GetLastError ());
         }
         else          
         {
             Print ( "Функция OrderSend успешно выполнена" );
         }
      }
}
 
AlexeyVik :
값이 변수에 할당되는 순서에도 불구하고 프로그램이 실행될 때까지 초기화되지 않은 상태로 유지되기 때문입니다. 즉, int Oninit()이 시작될 때까지 배열의 차원으로 사용하는 변수는 초기화되지 않습니다. 이 줄을 Oninit()에 전달하면 모든 것이 작동합니다...

Alexey Vik 감사합니다!

나는 그렇게 할게. 나는 Oninit에 대해 생각하지 않았지만 아마도 그럴 것입니다.

 

말해봐, 플리즈))))

차트에는 몇 가지 그래픽 개체 가 있습니다.

새로운 바 형성을 완료했습니다. 그가 그래픽 개체를 만졌는지 확인하는 가장 쉬운 방법은 무엇입니까?

(어쨌든 나는 모든 물건의 가격을 정렬하고 그 중 하나에 마지막 막대의 가격 범위가 있는지 비교하고 싶지 않습니다)

즉, 이러한 좌표에 그래픽 개체가 있는지 확인하는 방법과 가격 범위가 있습니다.

 
favidu :

내 가장 간단한 코드는 주문을 열지 않습니다.

로그는 다음과 같이 말합니다: '1419717': 주문 매수 0.01 EURUSD 시장 개시 sl: 1.13720 tp: 1.13842 실패 [유효하지 않은 S/L 또는 T/P]

여기(포럼에서) 그들은 힌트를 주었습니다. "Stops and Takes는 정상화되어야 합니다!"

이 문구가 의미하는 바를 이해하지 못합니까?

컴파일러는 오류나 경고를 발행하지 않습니다. 테스트할 때 모든 것이 작동합니다. 어디에서 무엇을 읽어야 할지 모르겠습니다.

설명이 너무 길다면 손절매를 정상화하고 차익을 얻는 방법을 읽을 수 있는 링크를 보내주세요.

미리 감사드립니다.

NormalizeDouble() 참조를 파헤칩니다. 그러나 브로커가 시장가 주문 을 개시하는 동안 스톱을 허용하지 않는 경우 두 번째 단계에서 0으로 입력하고 별도로 설정해야 합니다. 코드베이스에 예제가 있습니다.


tk= OrderSend ( Symbol (),OP_BUY,Lots,Ask, 3 ,NormalizeDouble(Bid-StopLoss* Point ,_Digits),NormalizeDouble(Ask+TakeProfit* Point ,_Digits), 0 , 0 , 0 ,Green);
 
evillive :

NormalizeDouble() 참조를 파헤칩니다. 그러나 브로커가 시장가 주문을 개시하는 동안 스톱을 허용하지 않는 경우 두 번째 단계에서 0으로 입력하고 별도로 설정해야 합니다. 코드베이스에 예제가 있습니다.


정말 감사합니다.
 

남자들은 올바른 방향으로 밀고...

예를 들어:

 #property strict
#property indicator_chart_window
#property indicator_buffers              0

int init() {

         return ( 0 );
}

int start() {
         if (! GlobalVariableCheck ( StringConcatenate ( "ID_" , Symbol ()))) {
                 long id = ChartID ();
                 Print (id);
                 GlobalVariableSet ( StringConcatenate ( "ID_" , Symbol ()), id);
        }
         return ( 0 );
}

그것은 항상 인쇄하는 것을 저장하지 않습니다 ..

이 같은:

결과

차던트?

 
글쎄요, 올리자마자 서버가 바로 404로 넘어갔네요 =)
 

임시로 상위 숫자는 따로, 하위 숫자는 따로 적어두었습니다.

long 이 double 유형의 전역 변수에 배치되지 않은 것 같습니다.

여기서는 " 정수가 9223372036854774784보다 크거나 -9223372036854774784보다 작은 경우 "를 제외하고는 문제가 없다고 설명 하고 있습니다.

그러나 차트 ID = 130659893770676840이 9223372036854774784보다 최소 한 자릿수보다 작다는 것을 인정해야 합니다.


추신: 누군가 내 실수를 설명할 수 있거나 결함인 경우 미리 감사드립니다. 나는 여기를 볼 것이다.