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

 
마지막 미결제 주문에 대해 이익 실현이 트리거되면 모든 주문을 마감 하는 Expert Advisor를 생성 할 수 있습니까?
 

친애하는 프로그래머!

도와주세요, 제발. 표시기는 강세 숨겨진 다이버전스를 기반으로 값을 그리고 NONE은 약세 숨겨진 다이버전스를 그립니다.... 오류 4002 - 배열 인덱스가 범위를 벗어났습니다.

모든 것을 수정한 것 같습니다... 저녁 내내 괴로워했습니다... 그리고 부끄럽습니다. 코드가 가장 간단합니다... 하지만 강세 화살표를 그렸지만 약세는 없었습니다... 도와주세요! 어디가 잘못됐어????????????????????????????

//+----------------------------------------------- --------------------+
//| div zz 5.mq4 |
//+----------------------------------------------- --------------------+

#속성 표시기_차트_창
#속성 표시기_버퍼 4
#속성 표시기_색상1 CLR_NONE
#속성 표시기_색상2 CLR_NONE
#property indicator_color3 블루바이올렛
#property indicator_color4 빨간색
#define arrows변위 0.0001
이중 cci[];
이중 cci1[];
이중 강세다이버전스[];
이중 약세다이버전스[];

//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//---- 표시기

SetIndexStyle(0, DRAW_NONE);
SetIndexStyle(1, DRAW_NONE);
SetIndexStyle(2, DRAW_ARROW);
SetIndexStyle(3, DRAW_ARROW);

SetIndexBuffer(0, cci);
SetIndexBuffer(1, cci1);
SetIndexBuffer(2, 강세 다이버전스);
SetIndexBuffer(3, 약세다이버전스);

SetIndexArrow(2, 233);
SetIndexArrow(3, 234);

리턴(0);
}
//+----------------------------------------------- --------------------+
//| 고객 표시기 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 사용자 지정 표시기 반복 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{
int counted_bars=IndicatorCounted();
//---- 마지막으로 계산된 막대가 다시 계산됩니다.
if(counted_bars>0) counted_bars--;
//int limit=Bars-counted_bars;
이중 vpadcci[];
이중[];
더블 hh[];
더블 ss[];



for (int i=500; i>=0; i--)
{
cci[i] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, i);
만약 (
(cci[i]<cci[i-1])&&
(cci[i]<cci[i-2])&&
(cci[i]<cci[i+1])&&
(cci[i]<cci[i+2])
)
{
vpadcci[i]=cci[i];
ss[i]=낮음[i];
}
}



for(int j=500; j>0; j--)
{
cci[j] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, j);
만약 (
((cci[j+1]>vpadcci[10])&&
(cci[j]<vpadcci[10])&&
(낮음[j]>ss[10])) ||
((cci[j+1]>vpadcci[9])&&
(cci[j]<vpadcci[9])&&
(낮음[j]>ss[9])) ||
((cci[j+1]>vpadcci[8])&&
(cci[j]<vpadcci[8])&&
(낮음[j]>ss[8])) ||
((cci[j+1]>vpadcci[7])&&
(cci[j]<vpadcci[7])&&
(낮음[j]>ss[7])) ||
((cci[j+1]>vpadcci[6])&&
(cci[j]<vpadcci[6])&&
(낮음[j]>ss[6])) ||
((cci[j+1]>vpadcci[5])&&
(cci[j]<vpadcci[5])&&
(낮음[j]>ss[5])) ||
((cci[j+1]>vpadcci[4])&&
(cci[j]<vpadcci[4])&&
(낮음[j]>ss[4])) ||
((cci[j+1]>vpadcci[3])&&
(cci[j]<vpadcci[3])&&
(낮음[j]>ss[3])) ||
((cci[j+1]>vpadcci[2])&&
(cci[j]<vpadcci[2])&&
(낮음[j]>ss[2])) ||
((cci[j+1]>vpadcci[1])&&
(cci[j]<vpadcci[1])&&
(낮음[j]>ss[1])) ||
((cci[j+1]>vpadcci[0])&&
(cci[j]<vpadcci[0])&&
(낮음[j]>ss[0]))
)

{ bullishDivergence[j] = 낮음[j] - 화살표 변위;
}
}


(i=1; i<500; i++)
{
cci1[i] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, i);
만약
(
(cci1[i]>cci1[i-1])&&
(cci1[i]>cci1[i-2])&&
(cci1[i]>cci1[i+1])&&
(cci1[i]>cci1[i+2])
)
{
v[i]=cci1[i];
hh[i]=높음[i];
}
}



for(j=1; j<500; j++)
{
cci1[j] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, j);
만약 (
((cci1[j+1]<v[10])&&
(cci1[j]>v[10])&&
(높음[j]<hh[10])) ||
((cci1[j+1]<v[9])&&
(cci1[j]>v[9])&&
(높음[j]<hh[9])) ||
((cci1[j+1]<v[8])&&
(cci1[j]>v[8])&&
(높음[j]<hh[8])) ||
((cci1[j+1]<v[7])&&
(cci1[j]>v[7])&&
(높음[j]<hh[7])) ||
((cci1[j+1]<v[6])&&
(cci1[j]>v[6])&&
(높음[j]<hh[6])) ||
((cci1[j+1]<v[5])&&
(cci1[j]>v[5])&&
(높음[j]<hh[5]))
)

{ bearishDivergence[j] = 높음[j] + arrowsDisplacement;

}
}


반환(0);
}

파일:
divfzzg5.mq4  5 kb
 
별도의 지점에서 이전했습니다. 여기에 간단한 질문을 하는 것이 좋습니다. 코드는 SRC 버튼을 통해 배치되어야 하며 훨씬 읽기 쉽습니다.


2011년 2월 14일 09:29
안녕하세요.

어드바이저를 프로그래밍하는 과정에서 ma_shift 매개변수가 혼란을 야기했습니다. 이동이 양수이면 라인이 오른쪽으로 이동합니다. 반대로 이동이 음수이면 행이 왼쪽으로 이동합니다.
평균의 교차점에 양수 값이 적용되면 주문이 열립니다.
그러나 매개변수가 음수로 설정되면 주문이 열리지 않습니다.
그것은 무엇과 연결되어 있습니까?

다음은 코드에서 발췌한 것입니다.

SMFast0= iMA ( NULL , Tmfrm_work, PeriodSMFast, - 3 , ModeSMFast, PriceSMFast, 0 ); // МА быстрая на текущем баре
SMFast1= iMA ( NULL , Tmfrm_work, PeriodSMFast, - 3 , ModeSMFast, PriceSMFast, 1 ); // МА быстрая на первом баре

SMSlow0= iMA ( NULL , Tmfrm_work, PeriodSMSlow, 0 , ModeSMSlow, PriceSMSlow, 0 ); // МА медленная на текущем баре
SMSlow1= iMA ( NULL , Tmfrm_work, PeriodSMSlow, 0 , ModeSMSlow, PriceSMSlow, 1 ); // МА медленная на первом баре

if (SMFast0>SMSlow0 && SMFast1<SMSlow1)

{
Opn_B=true; // Критерий откр. Buy
Cls_S=true; // Критерий закр. Sell
}

if (SMFast0<SMSlow0 && SMFast1>SMSlow1)
{
Opn_S=true; // Критерий откр. Sell
Cls_B=true; // Критерий закр. Buy
} 
 

안녕하세요! 얼마 전에 나는 Expert Advisors를 작성 하는 방법을 알아 내려고 시작했습니다. 그런 질문이 있습니다. 내가 (자신에게) 스탑 바이를 하고 스탑이 자리를 잡은 후에 어드바이저 자신이 손절매를 하도록 규정할 수 있습니까? 즉, 스탑 바이 또는 스탑이 포인트 5(대략적으로 말하면)에 앉은 후 어드바이저는 즉시 손절매 자체를 넣습니다.

 
Poseidon :
마지막 미결제 주문에 대해 이익 실현이 트리거되면 모든 주문을 마감하는 Expert Advisor를 생성할 수 있습니까?

할 수 있다.

Pupersa , 이 순서를 찾아 그 안에 있는 "stoploss" 매개변수를 변경하세요. 복잡하지 않습니다.

KoDim, 값이 왼쪽으로 이동하면 오른쪽 막대(아마도 확인하는 교차점)에 값이 전혀 존재하지 않기 때문일 수 있습니까?

 

프로그래머를 위한 질문: 소수점 이하 숫자를 정수로 만드는 방법은 무엇입니까? :)

예를 들어, 숫자 1.128에는 128이 필요하고 1.12-12에는 1.2-2가 필요합니다)

number는 외부 변수입니다.

 
MT5에 대한 질문입니다. 결정하는 방법. 테스터가 작업을 완료했다고? 비주얼 빼고 :)
 
eddy :

프로그래머를 위한 질문: 소수점 이하 숫자를 정수로 만드는 방법은 무엇입니까? :)

예를 들어, 숫자 1.128에는 128이 필요하고 1.12-12에는 1.2-2가 필요합니다)

number는 외부 변수입니다.


여기를 보십시오: https://docs.mql4.com/en/basis/operations/math
 
nemo811 :


화폐와 거래량이 시장에서 작동하고(엘리엇 파동이 아님) 가격 움직임이 혼란스럽지 않은 경우 이러한 거래량으로 인해 2쌍(3개 중 고려됨)에 대한 2개의 신호는 세 번째에 대해 더 강한 신호를 제공합니다 쌍. 주문 누적 수준을 찾고 VSA를 분석하면 원하는 X와 Y를 찾을 수 있습니다. :)))

또한(그림 참조) 한 통화 쌍(2개 통화로 구성)에 대한 명확한 플랫은 세 번째 통화(나머지 2개 쌍에 대해)의 추세를 방해하지 않습니다. 하나 이상의 통화에 대한 추세로 일종의 "시장 혼란"이 형성됩니다. 일중 추세는 중장기 추세보다 덜 안정적이기 때문에 이러한 혼란은 소규모 기간에 가장 두드러집니다.

이러한 관점에서 시장을 연구하면서 나는 일반적으로 통화 쌍보다 통화 자체의 추세가 더 안정적인 형태라고 생각하는 경향이 있었습니다. 그렇지 않으면 어떤 분석도 수행할 수 없는 오실레이터 차트를 얻게 될 것입니다.

그것이 이 사진이 말해주고 있는 것입니다. ))))

M1 및 M5의 달러 인덱스에 대해 Expert Advisor를 테스트한 결과 GBP/USD 쌍보다 더 나쁜 결과가 나타났습니다. 매우 작은 기록 아카이브로 인해 큰 TF를 테스트할 수 없습니다. Fibogroup은 nidexes 측면에서 많은 것을 제공하지 않으며 많은 DC는 전혀 제공하지 않습니다. 따라서 통화 추세를 연구하고 소량으로 작업하는 것은 문제가 있습니다 - 0.01 ....
 
eddy :

프로그래머를 위한 질문: 소수점 이하 숫자를 정수로 만드는 방법은 무엇입니까? :)

예를 들어, 숫자 1.128에는 128이 필요하고 1.12-12에는 1.2-2가 필요합니다)

number는 외부 변수입니다.

 double a = 1.123345 ;
int b = a;
그것도 가능합니다.