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

 
Vinin :

그러나 지표의 헤더도 편집해야 합니다. 모든 버퍼가 값을 저장할 수 있도록

그리고 역사 계산을 하면 좋겠지만 이것은 물론 취향의 문제입니다. 그리고 개체로 작업하는 것이 더 정확합니다. 각 틱에서 동일한 이름을 가진 객체가 생성됩니다(또는 오류 생성).

캡을 수정했습니다.

버퍼 포함:

     UP_1Buffer[ 0 ] = uitog1v;
     UP_2Buffer[ 0 ] = uitog2v;
     UP_3Buffer[ 0 ] = uitog3v;
     DOWN_1Buffer[ 0 ] = ditog1v;
     DOWN_2Buffer[ 0 ] = ditog2v;
     DOWN_3Buffer[ 0 ] = ditog3v;

추측했다.

도움을 주셔서 대단히 감사합니다.


당신의 제안에 관해서라면, 나는 그것들을 만드는 것을 꺼리지 않을 것입니다. 그러나 불행히도 나는 그것들을 직접 만들지 않을 것입니다.

 
artmedia70 :

여기에 쓴 내용을 말로 설명하십시오.

개인적으로, 첫눈에 당신의 아이디어는 퍼즐로 판명되었습니다. 단위가 1과 같지 않으면 주문을 닫으십시오 ...

그 뒤로 나머지는 안 봤다...

추신하고 시도하지 마십시오, 한주기에 일반 Expert Advisor를 작성하는 것이 가능하다고 생각조차하지 마십시오 ...

아이디어는 다음과 같습니다.

시장 진입점: 미결 포지션이 없다면 언제든지 오픈 포지션은 고사합니다.

로봇은 현재 가격(사용자 변수 PriceDistance)에서 동일한 거리에 있는 2개의 보류 중인 포즈인 SS BS를 엽니다.

동일한 TP, SL, TS를 가진 정착민(현재 가격의 미러 이미지에서와 같이.

그리고 둘 다 동시에 (변수 "TimeStop"의 관점에서).

모든 것....

실제로: 이전 위치는 마감되었습니다(시간이 만료되거나 SL 또는 TP에 대해 상관 없음). 터미널은 무료이며, 그 직후 동일한 매개변수로 동일한 위치가 열리지만, 현재 가격에서 새로운 범위로. 다음으로 주기입니다.

아이디어는 원시적이며 100% 드레이너이지만 이 방향으로 이동하여 특정 시간 프레임의 특정 값에서 볼륨과 같은 다른 신호에 연결할 계획입니다....

그래서 본격적으로 필요한 프로그램....

그래서 쓰기 시작했는데...

 
좋은 저녁이에요! 각 틱 에서 사용 가능한 이익을 계산하기 위해 가장 간단한 구성을 여기에 썼습니다. 글쎄, 그것은 작동하지 않습니다! 10분동안 지켜보고 눈으로 코드를 먹었다. 오류가 표시되지 않습니다. 다음은 코드입니다.
 //----
         double Profit;
for ( i= OrdersTotal ();i> 0 ;i--){ OrderSelect (i- 1 ,SELECT_BY_POS );

if ( OrderMagicNumber ( )== 2000 && OrderSymbol ()== Symbol ()&& OrderType ( ) ==OP_SELL ||
      
 OrderMagicNumber ( )== 1000 && OrderSymbol ()== Symbol ()&& OrderType ( ) ==OP_BUY){
 
  
 Profit=Profit+ OrderProfit ( ) ; Alert ( "i " , i , " Profit " , Profit);}}
 
 
//----
매직넘버가 맞으니 4번 확인해보세요. 괄호, 내가 추측할 수 있는 모든 것, 모든 것이 사실인 것 같다. 주문 유형을 잘못 쓰거나 비교합니까? 도움말을 살펴보았습니다. 한마디로 도와주세요! 당신 없이는 아무것도 아닌!! 무엇이 될 수 있는지 설명하십시오 ??
 
그리고 개별적으로 세 가지 조건이 모두 작동한다는 것을 알고 있습니다!!
 double Profit;
for ( i= OrdersTotal ();i> 0 ;i--){ OrderSelect (i- 1 ,SELECT_BY_POS );

if ( OrderType ( ) ==OP_SELL ){ Alert ( "i " , i , " OP_SELL " , Profit);}

if ( OrderSymbol ()== Symbol ()){ Alert ( "i " , i , " Symbol() " , Profit , Symbol (), OrderSymbol ());}

if ( OrderMagicNumber ( )== 2000   ) { Alert ( "i " , i , " OrderMagicNumber( ) " , Profit , OrderMagicNumber ( ));}



if ( OrderMagicNumber ( )== 2000 && OrderSymbol ()== Symbol ()&& OrderType ( ) ==OP_SELL ||
      
 OrderMagicNumber ( )== 1000 && OrderSymbol ()== Symbol ()&& OrderType ( ) ==OP_BUY){
 
  
 Profit=Profit+ OrderProfit ( ) ; Alert ( "i " , i , " Profit " , Profit);}}
나는 완전한 충격과 혼란에 빠졌습니다!
 
dkfl.zrjdktdbx :
좋은 저녁이에요! 나는 여기에 각 틱에서 사용 가능한 이익을 계산하기 위해 가장 간단한 구성을 썼습니다. 글쎄, 그것은 작동하지 않습니다! 10분동안 지켜보고 눈으로 코드를 먹었다. 오류가 표시되지 않습니다. 다음은 코드 매직 넘버입니다. 네 번 확인했습니다. 괄호, 내가 추측할 수 있는 모든 것, 모든 것이 사실인 것 같다. 주문 유형을 잘못 작성/비교할 수 있습니까? 도움말을 살펴보았습니다. 한마디로 도와주세요! 당신 없이는 아무것도 아닌!! 무엇이 될 수 있는지 설명하십시오.


대괄호가 몇 개 없습니다.

 double Profit= 0 ;
for ( i= OrdersTotal ();i> 0 ;i--){ OrderSelect (i- 1 ,SELECT_BY_POS );

if ( ( OrderMagicNumber ( )== 2000 && OrderSymbol ()== Symbol ()&& OrderType ( ) ==OP_SELL ) ||
      
( OrderMagicNumber ( )== 1000 && OrderSymbol ()== Symbol ()&& OrderType ( ) ==OP_BUY ) ){
 
  
 Profit=Profit+ OrderProfit ( ) ; Alert ( "i " , i , " Profit " , Profit);}}
 

그런 것 같습니다. 단순하게 유지하는 것이 좋지만

 double Profit= 0 ;
for ( i= OrdersTotal ();i> 0 ;i--){ 
   OrderSelect (i- 1 ,SELECT_BY_POS );
   if ( OrderSymbol ()== Symbol ()) {
       if ( OrderMagicNumber ( )== 2000 && OrderType ( ) ==OP_SELL )  Profit+= OrderProfit ( );
       if ( OrderMagicNumber ( )== 1000 && OrderType ( ) ==OP_BUY  )  Profit+= OrderProfit ( );
   }
   Alert ( "i " , i , " Profit " , Profit);
}
 

다음 질문이 MT4에서 발생했습니다. (2/3*9 == 2*9/3) ?

         Comment (
             "\n" ,
             "\n" , "2/3*9        = " , 2 / 3 * 9 ,
             "\n" , "2*9/3        = " , 2 * 9 / 3 ,
             "\n" ,
         "\n" );


고맙습니다!

 
chief2000 :

다음 질문이 MT4에서 발생했습니다. (2/3*9 == 2*9/3) ?


고맙습니다!


무슨 일이야?

계산기로 확인해보면 알 수 있습니다.

표현식이 평가되는 순서는 문서를 참조하십시오.

최소한 교과서는 읽어야지...

"프로그램에서 표현식의 평가 순서는 수학에서 유사한 계산의 순서와 유사하지만 중간 표현식의 값 유형 계산에서 차이가 있어 최종 결과에 큰 영향을 미친다는 것을 쉽게 알 수 있습니다. 특히(수학에서 채택된 규칙과 달리) 순서는 그다지 중요하지 않습니다. 이를 입증하기 위해 작은 예를 고려하십시오: 문제 6. 식 A/B*C 및 A*C/의 값을 계산 B는 정수 A, B, C에 대한 것입니다.


직관적으로 두 경우의 계산 결과는 동일할 것으로 예상됩니다. 그러나 이 진술은 실수에만 해당됩니다. 정수형의 피연산자로 구성된 표현식의 값을 평가할 때 중간 결과가 매우 중요합니다. 이 경우 피연산자 시퀀스가 근본적으로 중요합니다.

 int A = 3 ; // Значение целого типа
int B = 5 ; // Значение целого типа
int C = 6 ; // Значение целого типа
int Res_1 = A/B*C; // Результат 0 (ноль)
int Res_2 = A*C/B; // Результат 3 (три)

A/B*C 식을 계산하는 과정을 추적해 보겠습니다.

1. 먼저(왼쪽에서 오른쪽으로) 식 A/B의 값이 평가됩니다. 위의 규칙에 따라 식 (3/5)의 값은 정수 값 0(영)이 됩니다.

2. 0 * C 식의 계산(0에 C를 곱함). 결과는 정수 값 0(영)입니다.

3. 전체 결과(Res_1 변수의 값)는 정수 값 0(영)입니다.

이제 A * C / B 표현식이 계산될 때 이벤트가 어떻게 전개되는지 봅시다.

1. A*C를 계산합니다. 이 표현식의 값은 정수 18(3*6=18)이 됩니다.

2. 식 18/B의 계산. 답은 분명합니다. (18/5) 소수 부분을 버린 후 정수 3(3)이 얻어집니다.

3. 전체 결과(Res_2 변수의 값)는 정수 값 3(3)입니다.

이 예에서는 정수 유형의 변수 값이 계산되는 프로그램의 작은 조각이 고려됩니다. 이러한 변수가 상수로 대체되지만 동일한 값이 사용되면 최종 결과는 변경되지 않습니다. 정수를 사용하는 표현식을 평가할 때 프로그램 행의 내용에 세심한 주의를 기울여야 합니다. 그렇지 않으면 나중에(특히 큰 프로그램에서) 감지하기 매우 어려운 프로그램에서 오류가 발생할 수 있습니다. 실수만 포함하는 계산에서는 이 문제가 발생하지 않습니다. 그러나 다른 유형의 피연산자가 복잡한 표현식에 사용되는 경우 최종 결과는 정수의 나눗셈이 발생하는 무작위로 구성된 단편에 완전히 의존할 수 있습니다.

연산자 섹션에서는 연산자의 개념과 일반적인 속성을 고려하고 연산자 장에서는 각 연산자의 고유한 속성을 드러냅니다.

 
FileFlush 가 파일을 저장하는 것과 같다고 말합니까?
 
Roman. :


무슨 일이야?

계산기로 확인해보면 알 수 있습니다.

확인됨 - Casio, 심지어 Microsoft 계산기는 2/3*9=6이라고 말합니다.


 
chief2000 :

확인됨 - Casio, 심지어 Microsoft 계산기는 2/3*9=6이라고 말합니다.



잘. 문제가 무엇입니까?