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

 
친애하는 프로그래머. 초보자인 저로서는 알고리즘 작성이 어려운데 수정이 가능하니 도움 부탁드립니다. 나는 매우 감사 할 것입니다!!!
이러한 간단한 Expert Advisor를 위해서는 다음이 필요합니다.

condition1이 충족 되면 다음을 수행합니다.
-오픈 SELL 주문 확인
-있는 경우 닫습니다.
- 당신은 계정에서 자금의 가용성을 확인할 수 있습니다
- BUY 주문 열기

condition2가 충족 되면 동일합니다.
- 오픈 BUY 주문 확인
-있는 경우 닫습니다.
- 당신은 계정에서 자금의 가용성을 확인할 수 있습니다
-판매를 위한 주문을 엽니다.
+ 오류 분석(주요 사항은 아니지만 가능)
이것은 현재 통화 쌍에 대한 모든 것입니다.

int start()                       
  {
   double M_0, M_1,               // Значение MAIN на 0 и 1 барах
          S_0, S_1;               // Значение SIGNAL на 0 и 1барах
//--------------------------------------------------------------------
                                   // Обращение к функции техн.индикат.
   M_0 = iStochastic ( NULL , 0 , 5 , 3 , 3 , MODE_SMA , 0 ,MODE_MAIN,   0 ); // 0 бар
   M_1 = iStochastic ( NULL , 0 , 5 , 3 , 3 , MODE_SMA , 0 ,MODE_MAIN,   1 ); // 1 бар
   S_0 = iStochastic ( NULL , 0 , 5 , 3 , 3 , MODE_SMA , 0 ,MODE_SIGNAL, 0 ); // 0 бар
   S_1 = iStochastic ( NULL , 0 , 5 , 3 , 3 , MODE_SMA , 0 ,MODE_SIGNAL, 1 ); // 1 бар
//--------------------------------------------------------------------
                                  
   if ( M_1 < S_1 && M_0 >= S_0 )   // УСЛОВИЕ 1 : Зеленая пересекает красную снизу
     
   if ( M_1 > S_1 && M_0 <= S_0 )   // УСЛОВИЕ 2 : Зеленая пересекает красную сверху
     
//--------------------------------------------------------------------
   return ;                             // Выход из start()
  }
 
좋은 오후에요! 말해 주세요. 함수 내부의 여러 전역 변수 에 값을 할당할 수 있습니까? 이 경우 이러한 변수를 어디에 선언해야 합니까?
 
ideasforlife :
친애하는 프로그래머. 초보자인 저로서는 알고리즘 작성이 어려운데 수정이 가능하니 도움 부탁드립니다. 나는 매우 감사 할 것입니다!!!
그러한 간단한 고문과 그것을 위해 다음이 필요합니다.

condition1이 충족 되면 다음을 수행합니다.
-오픈 SELL 주문 확인
-있는 경우 닫습니다.
- 당신은 계정에서 자금의 가용성을 확인할 수 있습니다
- BUY 주문 열기

condition2가 충족 되면 동일합니다.
- 오픈 BUY 주문 확인
-있는 경우 닫습니다.
- 당신은 계정에서 자금의 가용성을 확인할 수 있습니다
-판매를 위한 주문을 엽니다.
+ 오류 분석(주요 사항은 아니지만 가능)
이것은 현재 통화 쌍에 대한 모든 것입니다.

CodeBase에는 Stochastic에 대한 많은 Expert Advisor 가 있습니다. 보기 및 다시 실행
 
ideasforlife :
친애하는 프로그래머. 초보자인 저로서는 알고리즘 작성이 어려운데 수정이 가능하니 도움 부탁드립니다. 나는 매우 감사 할 것입니다!!!
그러한 간단한 고문과 그것을 위해 다음이 필요합니다.

condition1이 충족 되면 다음을 수행합니다.
-오픈 SELL 주문 확인
-있는 경우 닫습니다.
- 당신은 계정에서 자금의 가용성을 확인할 수 있습니다
- BUY 주문 열기

condition2가 충족 되면 동일합니다.
- 오픈 BUY 주문 확인
-있는 경우 닫습니다.
- 당신은 계정에서 자금의 가용성을 확인할 수 있습니다
-판매를 위한 주문을 엽니다.
+ 오류 분석(주요 사항은 아니지만 가능)
이것은 현재 통화 쌍에 대한 모든 것입니다.

그리고 https://book.mql4.com/ru/samples/expert 교과서의 예제를 분석하는 것이 훨씬 더 쉬울 것입니다.

교과서 표지를 덮고 읽는 것이 그렇게 어려운 일입니까?

 
ideasforlife :
친애하는 프로그래머. 초보자인 저로서는 알고리즘 작성이 어려운데 수정이 가능하니 도움 부탁드립니다. 나는 매우 감사 할 것입니다!!!
이러한 간단한 Expert Advisor를 위해서는 다음이 필요합니다.

condition1이 충족 되면 다음을 수행합니다.
-오픈 SELL 주문 확인
-있는 경우 닫습니다.
- 당신은 계정에서 자금의 가용성을 확인할 수 있습니다
- BUY 주문 열기

condition2가 충족 되면 동일합니다.
- 오픈 BUY 주문 확인
-있는 경우 닫습니다.
- 당신은 계정에서 자금의 가용성을 확인할 수 있습니다
- SELL 주문을 엽니다.
+ 오류 분석(주요 사항은 아니지만 가능)
이것은 현재 통화 쌍에 대한 모든 것입니다.


완성된 솔루션(교과서 버전)이 여기에 있습니다. MACD와 관련된 모든 것을 제거하십시오 - 그게 전부입니다... :-P

추신 심지어 변수의 이름도 거의 동일합니다. 교과서를 읽으십시오 - 설명이 있고 다른 모든 것이 있습니다. :-아르 자형

 
Roman. :


완성된 솔루션(교과서 버전)이 여기에 있습니다. MACD와 관련된 모든 것을 제거하십시오 - 그게 다야... :-P

추신 심지어 변수의 이름도 거의 동일합니다. 교과서를 읽으십시오 - 설명이 있고 다른 모든 것이 있습니다. :-아르 자형

내가 처음이야! :-피 :-피
 
Code :

안녕하세요, 친애하는 포럼 사용자.

물론 초보자의 질문 중 일부입니다. 저는 mql4를 탐구하려고 합니다. 저는 프로그램을 만든 적이 없기 때문에 질문이 상당히 원시적일 수 있습니다. 그러나 그것은 스스로 작동하지 않습니다.

나는 히스토그램이 아니라 선을 그려서 볼륨 표시를 약간 "고통"하기로 결정했지만 약간의 처리가 필요했습니다. 코드 조각은 다음과 같은 의미를 가져야 합니다. 두 번째 막대에서 시작하여 이전 막대와 단방향(둘 다 위쪽)으로 볼륨은 두 번째 막대에서 그려집니다. 결과적으로 두 번째 막대에서 위쪽으로 그려지는 표시 창에 점선이 표시되지만 어떤 이유로든 모든 경우에 그런 것은 아닙니다. 때문에 파선이 얻어진다. 렌더링을 위한 나머지 조건은 전혀 정의되지 않았으며 이는 미래의 문제입니다. 그런데 왜 매 초마다 위쪽으로 선이 그려지지 않는지 알 수 없습니다. 도와주세요, 제발.

다음은 코드입니다. 코드의 다른 실수에 대해 더 많은 의견이 있으면 기쁠 것입니다.


이 지표의 의미는 무엇입니까? 왜 그가 필요합니까?


이 기능이 필요한 이유:

ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;

또는 그녀이지만 이미 열었습니다.

ExtVolumesBuffer[i]=Volume[i]+(Volume[i]+Volume[i+1])/(2-(Close[i]-Open[i+1])*1000);

???


그리고 코드의 실수에 대해. 당신의 라인

 double dVolume=Volume[i];
double vback1=Volume[i+ 1 ];

         {
         double vteor12=(dVolume+vback1)/ 2 ;
             if (Close[i+ 1 ]>Open[i+ 1 ] && Close[i]>Open[i]) double UP12=(Close[i]-Open[i+ 1 ])* 1000 ; else UP12= 0 ;
             if (UP12!= 0 ) double vrealUP12=(dVolume+vback1)/UP12; else vrealUP12= 0 ;
             if (Close[i+ 1 ]>Open[i+ 1 ])
             if (Close[i]>Open[i])
            ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
             if (ExtVolumesBuffer[i]< 0 ) ExtVolumesBuffer[i]= 0 ;
              }

다음에 해당합니다.

 double dVolume=Volume[i];
double vback1=Volume[i+ 1 ];

double vteor12=(dVolume+vback1)/ 2 ;
if (Close[i+ 1 ]>Open[i+ 1 ] && Close[i]>Open[i])
{
   double UP12=(Close[i]-Open[i+ 1 ])* 1000 ;
   double vrealUP12=(dVolume+vback1)/(Close[i]-Open[i+ 1 ])* 1000 ;
   ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
   if (ExtVolumesBuffer[i]< 0 )
      ExtVolumesBuffer[i]= 0 ;
}
else
{
   UP12= 0 ;
   vrealUP12= 0 ;
}

최적화된 코드를 보고 왜 그렇게 많은 변수가 도입되는지 생각합니다. 그리고 그들이 "그렇지 않으면" 무효화하는 이유는 무엇입니까?

지표의 이면에 있는 아이디어를 이해했다면 도움을 드릴 수 있을 것입니다.

 
MaxZ :

이 지표의 의미는 무엇입니까? 왜 그가 필요합니까?


이 기능이 필요한 이유:

또는 그녀이지만 이미 열었습니다.

???


그리고 코드의 실수에 대해. 당신의 라인

다음에 해당합니다.

최적화된 코드를 보고 왜 그렇게 많은 변수가 도입되는지 생각합니다. 그리고 그들이 "그렇지 않으면" 무효화하는 이유는 무엇입니까?

지표의 이면에 있는 아이디어를 이해했다면 도움을 드릴 수 있을 것입니다.


귀하의 답변에 감사드리며 귀하의 질문에 답변해 드리겠습니다.

바로 그 특성이 지표의 전체 아이디어일 뿐입니다. 그리고 동시에 MQL을 연습합니다. 나는 스스로 작업을 생각해 냈고 직관적으로 언어로 구현하는 것이 그다지 복잡하지 않다는 것을 이해합니다. 나는 앉아서 시도합니다.

따라서 특성의 본질은 두 단방향 볼륨의 특정 고정 이론 수준을 실제 수준과 비교하는 것입니다. 즉, 실제 "개방" 간격에 대한 두 거래량의 합계의 실제 비율이 주어진 이론상 값보다 높으면 계산된 두 거래량의 차이 형태로 실제 두 번째 거래량에 "보너스"를 추가합니다. 이론 및 실제 결과. 실제 수준이 이론 수준보다 낮으면 두 번째 막대의 볼륨에서 동일한 차이를 뺍니다. 설명이 명확했나요?

만일을 대비하여 이 특성을 공개할 때 괄호를 잘못 꽂은 것 같아서 서둘러서 말씀드립니다.

또한 내 생각에 귀하가 내 것과 동등하다고 생각하는 행은 0으로 나누기로 이어질 것입니다. 이제 확인하겠습니다.

 

안녕하세요!

이 지점의 전문가(특히 Roman)의 귀중한 도움 덕분에 테스터에 +를 표시하는 간단한 Expert Advisor를 만들 수 있었습니다. 질문 : 실제에 넣을 수 있는지 여부를 결정하는 방법은 무엇입니까? 기준이 있나요?

 
MaxZ :
내가 처음이야! :-피 :-피

당신의 스타일은 전혀 거기에 없습니다 ... 완전히 잘못된 거래 기준에 대한 질문은 STO-HAS-TI-KE에 관한 것입니다 ... :-P