확인 - 내가 무엇을 잘못 했습니까? - 페이지 6

 
Nikolai Semko # :

예, Natalya - "당신이 한 줄의 코드에 대해 지불할 때" 시리즈의 밈이었습니다.

프로그래머들 사이에서 그런 유머


귀하의 경우 기능이 필요하지 않습니다.

Volume1 ... Volume10 변수를 처음에 어레이 볼륨[10] 형태로 형성하면 됩니다.
그런 다음 인덱스 n으로 요소 volume[n]에 액세스합니다.
걱정하지 마세요. 거의 모든 프로그래머가 이 문제를 겪었습니다.
가장 중요한 것은 프로그래밍에서 정말 서두른다는 것입니다. 느낄 수있어.
그래서 당신은 멀리 갈 것입니다.

아름답게 쓰는 법을 알려주세요. 코드 배열의 중복을 피하기 위해.
EA는 2개의 지표를 사용합니다.
이제 주문을 여는 조건은 다음과 같습니다.

 if (Indicator1 > 0 && Indicator2 > 0 )
{
OrderSend
}


하지만 설정에 필터를 추가하고 싶습니다
1 또는 2 표시기 사용 여부
나는 그것을 더 올바르게 구현하는 방법을 모릅니다.
다음과 같은 일이 발생합니다.

 if (Indicator1 && Indicator1 > 0 )
{
if (Indicator2 && Indicator2 > 0 ) || (Indicator2 == false )
{
///
}
}



if (Indicator2 && Indicator2 > 0 )
{
if (Indicator1 && Indicator1 > 0 ) || (Indicator1 == false )
{
///
}
}
설정에서 1개 또는 두 번째 표시기를 끌 수 있도록.
많은 코드를 복사하지 않고는 어떻게 해야할지 모르겠습니다.....
 
Natalya Smirnova # :

아름답게 쓰는 법을 알려주세요. 코드 배열의 중복을 피하기 위해.
EA는 2개의 지표를 사용합니다.
이제 주문을 여는 조건은 다음과 같습니다.


하지만 설정에 필터를 추가하고 싶습니다
1 또는 2 표시기 사용 여부
나는 그것을 더 올바르게 구현하는 방법을 모릅니다.
다음과 같은 일이 발생합니다.

설정에서 1개 또는 두 번째 표시기를 끌 수 있도록.
많은 코드를 복사하지 않고는 어떻게 해야할지 모르겠습니다.....

여기에 이 주제에 대해 조금 썼습니다. https://www.mql5.com/ru/forum/6343/page1384#comment_26447195

 
JRandomTrader # :

여기에 이 주제에 대해 조금 썼습니다. https://www.mql5.com/ru/forum/6343/page1384#comment_26447195

덕분에 공부하러 갑니다.
 

Natalya Smirnova # :

설정에서 1개 또는 두 번째 표시기를 끌 수 있도록.
많은 코드를 복사하지 않고는 어떻게 해야할지 모르겠습니다.....


 input bool indicator_1 = true ;
input bool indicator_2 = true ;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool F_1()
    {
     if (!indicator_1)
           return true ;
// выполнение условий

//---
     return false ;
    }
bool F_2()
    {
     if (!indicator_2)
           return true ;
// выполнение условий

//---
     return false ;
    }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart ( void )
    {
     if (F_1 && F2) /* работаем */ ;
    }

인디케이터 실행 조건을 함수에 작성하고, 체크하지 않으면 조건을 만족합니다. 우리는 TRUE 를 반환합니다.

 
Natalya Smirnova # :

아름답게 쓰는 법을 알려주세요. 코드 배열의 중복을 피하기 위해.
EA는 2개의 지표를 사용합니다.
이제 주문을 여는 조건은 다음과 같습니다.


하지만 설정에 필터를 추가하고 싶습니다
1 또는 2 표시기 사용 여부
나는 그것을 더 올바르게 구현하는 방법을 모릅니다.
다음과 같은 일이 발생합니다.

설정에서 1개 또는 두 번째 표시기를 끌 수 있도록.
많은 코드를 복사하지 않고는 어떻게 해야할지 모르겠습니다.....

단, 사용조건에 대한 변수와 지표 출력값 변수는 서로 다른 변수여야 합니다.
사용 조건에 대한 변수가 ind_1 및 ind_2인 경우 예를 들어 다음과 같이 할 수 있습니다.

ind_1 = !(ind_1 && !(Indicator1> 0) );
ind_2 = !(ind_2 && !(Indicator2> 0) );
if (ind_1 && ind_2) { OrderSend... } ;
PS 만일을 대비하여: 느낌표는 부울 값 반전을 의미합니다.
 
Nikolai Semko # :

단, 사용조건에 대한 변수와 지표 출력값 변수는 서로 다른 변수여야 합니다.
사용 조건에 대한 변수가 ind_1 및 ind_2인 경우 예를 들어 다음과 같이 할 수 있습니다.

ind_1 = !(ind_1 && !(Indicator1> 0) );

논리 표현에 대괄호와 반전이 풍부하여 단순화 할 수 있음을 시사합니다 ...

PS/ 구조적으로 일반적으로 슬래그. 지표 판독값을 거래 요소 없이 그룹으로 요약할 수 있다면(개봉 위치에 관계없이) 이는 지표이며 로봇의 거래 논리와 아무 관련이 없습니다. 분석을 위해 렌더링되고 액세스 가능해야 합니다.

 
Maxim Kuznetsov # :

논리 표현에 대괄호와 반전이 풍부하여 단순화 할 수 있음을 시사합니다 ...

아마도.
논리 ab에는 어떤 옵션이 있습니까?
0 0 = 1
0 1 = 1
1 0 = 0
1 1 = 1
제외 !(a && !b)
어쩌면 누군가는 더 짧은 논리를 찾을 것입니다 ...

 
Maxim Kuznetsov # :

PS/ 구조적으로 일반적으로 슬래그. 지표 판독값을 거래 요소 없이 그룹으로 요약할 수 있다면(개봉 위치에 관계없이) 이는 지표이며 로봇의 거래 논리와 아무 관련이 없습니다. 분석을 위해 렌더링되고 액세스 가능해야 합니다.

이것은 내가 이해하지 못했습니다.
방금 질문에 대답했습니다. 더 이상은 없어.
 
Nikolai Semko # :
아마도.
논리 ab에는 어떤 옵션이 있습니까?
0 0 = 1
0 1 = 1
1 0 = 0
1 1 = 1
제외 !(a && !b)
어쩌면 누군가는 더 짧은 논리를 찾을 것입니다 ...

!아 || 비

:)

 
PapaYozh # :

!아 || 비

:)

네 맞습니다.
감사해요 :))
재미있는. XOR을 조이려고 했지만 OR을 잊어버렸습니다.

따라서 더 짧은 버전은 다음과 같습니다.
ind_1 = !ind_1 || Indicator1> 0 ;
ind_2 = !ind_2 || Indicator2> 0 ;
if (ind_1 && ind_2) { OrderSend ... };
또는 원래 ind_1 및 ind_2를 유지하는 한 줄 버전

 if ((!ind_1 || Indicator1> 0 ) && (!ind_2 || Indicator2> 0 )) { OrderSend ... };