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

 
snail09 :
왼쪽 괄호를 모두 세고 오른쪽 괄호를 모두 세고 수량을 비교하거나 오류를 찾을 때까지 함수를 하나씩 주석 처리하십시오. 맛과 색(원본의 디자인)은 사람마다 다릅니다.
여는 괄호 4개와 닫는 괄호 4개, 그게 전부입니다. 하지만 댓글이 어떻게 도움이 될까요, 잘 이해가 안되네요
 
Pinki :
여는 괄호 4개와 닫는 괄호 4개, 그게 전부입니다. 하지만 댓글이 어떻게 도움이 될까요, 잘 이해가 안되네요

사용자 기능을 먼저 주석 처리한 다음 주기, 시작 내부의 논리적 구성 등을 주석 처리할 수 있습니다. 계속해서 자르면 브래킷에 맞는 것을 찾을 수 있습니다. 아니면 다른 곳에서 ";" 넣는 것을 잊었다...

그리고 IF와 FOR를 혼동하지 않으셨나요?

죄송합니다. 바로 눈치채지 못했습니다.

   // Перебор в цикле всех рыночных и отложенных ордеров
   for ( int i= 0 ;i<= OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
         {
         // Если инструмент и магик соответствуют - значит ордер наш
         if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==MagicNumber)
            {
             // Подсчитываем только рыночные ордера
             if (_Type==OP_BUY || _Type==OP_SELL) 
               {
               op++;
               }
            }
         }
     }

이 스니펫과 비교하십시오. 이것은 옵션일 뿐입니다.

 
001 :

촛불의 6번째 주문이 열리지 않은 이유를 누가 설명할 수 있습니까? 그리고 그것을 열려면 어떻게 해야 합니까?

통나무.

2011.11.04 19:42:21 1999.11.04 20:00 RLB_FLAT GBPUSD,H4: 오픈 #7 매도 스톱 0.10 GBPUSD at 1.62233 sl: 1.64443 tp: 1.57089 ok
2011.11.04 19:42:21 1999.11.04 20:00 테스터: #6 만료로 삭제됨
2011.11.04 19:42:10 1999.11.04 12:00 RLB_FLAT GBPUSD,H4: 오픈 #6 매도 스톱 0.10 GBPUSD at 1.63373 sl: 1.64570 tp: 1.62652 ok
2011.11.04 19:42:09 1999.11.04 08:00 테스터: #5 만료로 삭제됨
2011.11.04 19:42:06 1999.11.04 00:00 RLB_FLAT GBPUSD,H4: 오픈 #5 매도 스톱 0.10 GBPUSD at 1.63622 sl: 1.64702 tp: 1.63411 ok
2011.11.04 19:42:00 1999.11.02 04:00 테스터: #4 만료로 삭제됨
2011.11.04 19:41:53 1999.11.01 20:00 RLB_FLAT GBPUSD,H4: 오픈 #4 매도 스톱 0.10 GBPUSD at 1.63365 sl: 1.64917 tp: 1.61097 ok

네 번째, 다섯 번째 및 여섯 번째 연기는 만료 날짜로 인해 제거되었습니다.

수명을 늘리거나 0(영)으로 설정합니다. OrderModify() 참조

 
мmersi :

네 번째, 다섯 번째 및 여섯 번째 연기는 만료 날짜로 인해 제거되었습니다.

수명을 늘리거나 0(영)으로 설정합니다. OrderModify() 참조


저를 혼란스럽게 하는 것은 6번째 주문이 만료되기 전(20시에 만료됨), 캔들이 16시에 떨어졌다는 것입니다. 이것은 그림에서 볼 수 있습니다.
 
mersi :

1. 이 기능은 역사상 가장 큰 티켓이 있는 주문을 찾습니다. 즉, 마지막으로 마감된 주문을 의미합니다(물론 최대 마감 시간이 있는 옵션이 선호되는 예외적인 경우는 제외).

2. 고객 의 조건에 따라 첫 번째 주문은 지정된 TP/SL로 열리고 두 번째 주문만 새 TP/SL로 열 수 있으며 첫 번째 트랜잭션이 다음과 같은 경우에만 함수가 0을 반환할 수 있습니다. 0이지만 기록에 마감된 주문이 없기 때문이 아닙니다.

그리고 마지막. 귀하의 버전에서 함수에서 j와 다른 SELECT를 사용하는 것은 과잉입니다.

충분한 :

 if (t< OrderCloseTime ()) {
         t= OrderCloseTime ();
      Profit= OrderProfit ()+ OrderSwap ()+ OrderCommission ();
  }
   return (Profit);

1. 티켓 번호를 매기기 위해 브로커(또는 고객 의 브로커)를 100% 신뢰할 수 있습니까? 시간은 여전히 더 안정적인 값입니다. 여기서 그는 수동으로 기록을 수정해야만 시간을 변경할 수 있습니다. IMHO - 더 나은 시간 사용.

2. 고객 이 논리를 변경해야 하는 경우 기능도 다시 작성해야 할 수 있습니다.

3. 당신은 제안

Profit= OrderProfit ()+ OrderSwap ()+ OrderCommission ();

루프 내에서 사용? 무엇 때문에? 이미 찾은 마지막 주문에 대해 한 번만 사용할 수 있습니다.

A... 귀하의 고객 은 테스트 및 최적화하지 않습니다. 당연하게도...

 

GlobalVariableSetOnCondition() - 이 함수가 무엇을 하는지 간단하게 설명해 주십시오. 도움말의 설명이 매우 황량합니다. 몇 가지 요점을 이해할 수 없습니까?

변수의 현재 값 이 세 번째 매개변수 check_value 의 값과 같으면 기존 전역 변수의 새 값을 설정합니다. 변수가 존재하지 않으면 함수는 ERR_GLOBAL_VARIABLE_NOT_FOUND(4058) 오류 를 생성하고 FALSE를 반환합니다. 함수는 성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 오류에 대한 정보를 얻으려면 GetLastError() 함수를 호출해야 합니다. 전역 변수의 현재 값이 check_value 와 다르면 함수는 FALSE를 반환합니다.
이 함수 는 전역 변수에 대한 원자적 액세스를 제공 하므로 동시에 작업하는 여러 전문가가 동일한 클라이언트 터미널 내에서 상호 작용할 때 세마포어를 구성하는 데 사용할 수 있습니다.

 
fore-x :

GlobalVariableSetOnCondition() - 이 함수가 무엇을 하는지 간단하게 설명해 주십시오. 도움말의 설명이 매우 황량합니다. 몇 가지 요점을 이해할 수 없습니까?

변수의 현재 값 이 세 번째 매개변수 check_value 의 값과 같으면 기존 전역 변수의 새 값을 설정합니다. 변수가 존재하지 않으면 함수는 ERR_GLOBAL_VARIABLE_NOT_FOUND(4058) 오류 를 생성하고 FALSE를 반환합니다. 함수는 성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 오류에 대한 정보를 얻으려면 GetLastError() 함수를 호출해야 합니다. 전역 변수의 현재 값이 check_value 와 다르면 함수는 FALSE를 반환합니다.
이 함수 는 전역 변수에 대한 원자적 액세스를 제공 하므로 동시에 작업하는 여러 전문가가 동일한 클라이언트 터미널 내에서 상호 작용할 때 세마포어를 구성하는 데 사용할 수 있습니다.

 GlobalVariableSetOnCondition ( "Имя переменной" , устанавливаемое значение, проверяемое значение);

GL_Var라는 전역 변수가 있다고 가정해 보겠습니다.

현재 값은 1.0입니다.

이 변수의 값이 1.0인지 확인하고, 그렇다면 이 변수를 2.0으로 설정해야 합니다.

다음과 같을 것입니다.

 GlobalVariableSetOnCondition (GL_Var, 2.0 , 1.0 );

이 함수의 반환 값을 처리하기 위해 if를 통해 호출할 수 있습니다.

 if (! GlobalVariableSetOnCondition (GL_Var, 2.0 , 1.0 )) {
   // здесь код обработки, если функция вернула false
   // false она вернёт в случае, если переменная GL_Var не была равна 1.0 во время вызова этой функции
   // или если вообще ещё нет глобальной переменной GL_Var
   }

함수를 호출하기 전에 ERR_GLOBAL_VARIABLE_NOT_FOUND 오류를 피하기 위해 전역 변수 GL_Var가 있는지 확인할 수 있습니다.

 

작은 기하학 문제를 도와주세요. 좌표 p1과 p2가 있는 선이 있습니다(그림에서 빨간색으로 표시). p2 좌표에서 38.2% fibo인 p3 좌표를 찾아야 합니다. 다음과 같이 했습니다.

if(p2>p1) p3=p2-(p2-p1)*0.382; 그림의 상단에 유효

if(p1>p2) p3= p2+(p1-p2)*0.382; 그림의 맨 아래에 유효

"if" 없이 이것을 하나의 방정식으로 쓸 수 있습니까?

 

자, 그냥 쓰세요

p3=p2-(p2-p1)*0.382

 
Roger :

자, 그냥 쓰세요

p3=p2-(p2-p1)*0.382


그리고 정말로! 도와주셔서 감사합니다.
사유: