Andrei01 : 음, 데모는 무섭지 않습니다. :) 하지만 실제 생활에서는 위험을 감수하지 않고 정상적으로 하는 것이 더 나을 것입니다... 차트 창이 매우 크고 최대값에 도달하지 않기 때문에 분명히 작동합니다... 글쎄, 아마도 그런 조언자 - 그렇게 할 것입니다 괜찮아. :)
그렇지 않습니다 - 막대 수를 다시 계산하면 히스토리를 교환하는 순간을 "놓칠 수 없습니다". 이 순간에는 조금 기다리는 것이 좋습니다. 히스토리는 TF가 끝날 때뿐만 아니라 때때로로드됩니다. TF의 시작이 로드되었습니다 - 란, 이것은 끔찍한 비밀입니다 쉿
그렇지 않습니다 - 막대 수를 다시 계산하면 히스토리를 교환하는 순간을 "놓칠 수 없습니다". 이 순간에는 조금 기다리는 것이 좋습니다. 히스토리는 TF가 끝날 때로드 될뿐만 아니라 때로는 TF의 시작이 로드되었습니다 - 란, 이것은 끔찍한 비밀입니다 쉿
:)
두 번째 옵션도 작동하지 않는 것으로 나타났습니다... 표시기 배열에서 막대 번호는 어쨌든 변경되지 않습니다! 비표준 시간 프레임 때문에이 모든 것을 이해했습니다. M1에서 M2까지 얻은 표준 표시기 Period_Converter_Opt로 구성되며, M2 Bar를 열 때 Max의 절반이 됩니다. 창의 막대와 Max 값이 어떻게 되는지 알아보세요. 창의 막대에서 SetIndexBuffer 인덱스 배열의 형성이 중지됩니다...((
두 번째 옵션도 작동하지 않는 것으로 나타났습니다... 표시기 배열에서 막대 번호는 어쨌든 변경되지 않습니다! 비표준 시간 프레임 때문에이 모든 것을 이해했습니다. M1에서 M2까지 얻은 표준 표시기 Period_Converter_Opt로 구성되며, M2 Bar를 열 때 Max의 절반이 됩니다. 창의 막대와 Max 값이 어떻게 되는지 알아보세요. 창의 막대에서 SetIndexBuffer 인덱스 배열의 형성이 중지됩니다...((
비표준 TF가 있는 경우 - 0으로 간주되는 막대에 0, 1이 아닌 인덱스가 있을 수 있습니까?
새로운 막대 인식 알고리즘 자체는 작동하지만 최대값에 도달한 후 차트가 표시됩니다. 창의 막대가 멈추면 SetIndexBuffer 인덱스 배열 의 형성이 멈추는 것으로 가정합니다. 여기에 문제가 있습니다. 전원을 켜면 모든 것이 잘 작동하고 차트가 멈추고 막대가 움직이고... 따라서 표시기가 작동하지 않습니다!
새로운 막대 인식 알고리즘 자체는 작동하지만 최대값에 도달한 후 차트가 표시됩니다. 창의 막대가 멈추면 SetIndexBuffer 인덱스 배열의 형성이 멈추는 것으로 가정합니다. 여기에 문제가 있습니다. 전원을 켜면 모든 것이 잘 작동하고 차트가 멈추고 막대가 움직이고... 따라서 표시기가 작동하지 않습니다!
코드는 어디에 있습니까? 시작할 때 그리는 경우 다시 그리기를 위한 막대 수가 잘못 결정된 문제일 수 있습니다.
코드는 어디에 있습니까? 시작할 때 그리는 경우 다시 그리기를 위한 막대 수가 잘못 결정된 문제일 수 있습니다.
#속성 표시기_차트_창 #property show_inputs #property indicator_buffers 3 // 버퍼 수 #property indicator_color1 DarkSeaGreen // 첫 번째 줄의 색상 #property indicator_color2 SaddleBrown // 두 번째 줄의 색상 #property indicator_color3 SaddleBrown // 두 번째 줄의 색상
extern int 기록 = 300; // 계산 내역의 막대 수 extern int 화살표=1; extern int Lines=0; // 계산할 막대의 수 //외부 정수 Left_Right= 5; // 수평 오프셋(막대) 외부 정수 up_down = 8; // 수직 오프셋(포인트) 정적 int up = 1, indlaststr = 600; 정적 날짜 시간 TimeLastRow, time0new, time0old; 이중 Line_0[],Line_1[],Line_2[]; // 데이터 배열 선언
//------------------------------------------------ -------------------- int init() // 특수 함수 init() {
리턴(0); // 사양을 종료합니다. 함수 초기화() } //------------------------------------------------ -------------------- int start() // 특수 함수 start() { //----+ 올바른 바의 수를 확인 // 지표 계산 if(기록-1 < 15) 리턴(0);
//+--- +=========================================+ int i, // 막대 인덱스 n, // 형식 매개변수(인덱스) k, // 지시자 요소 인덱스. 정렬 counted_bars; // 계산된 막대의 수 이중선; indlaststr = iBarShift(NULL, 0, VrLastStr); //주석(indpoststr," ",up); //------------------------------------------------ -------------------- /* Counted_bars=IndicatorCounted(); // 계산된 막대의 수 //---- 가능한 오류 확인 if(Counted_bars < 0) 리턴(-1); i=Bars-Counted_bars-1+indlaststr; // 카운트되지 않은 첫 번째 인덱스 if (i>History-1) // 막대가 많으면 .. i=이력-1; // ..주어진 양을 계산*/ time0new=시간[0]; if(time0old!=time0new) { i=이력-1; time0old=time0new; 주석("막대 ",막대,", 기록 ",기록,", i ",i); }
for(i=i-1; i >= 3; i--) // 셀 수 없는 막대를 반복합니다. { if(위쪽==0) { 라인=낮음[i];
if (라인<낮은[i-1] && 라인<낮은[i-2] && TimeLastRow<시간[i]) { TimeLastRow = 시간[i]; Line_0[i] = 라인; Line_2[i] = Line-Up_Down*Point; 위로 = 1; 계속하다; } } if(up==1) // 두 양초의 롤백 기준을 기반으로 fibo 그리드 구축 { 라인=높음[i];
if (Line>High[i-1] && Line>High[i-2]&& TimeLastRow<시간[i]) { TimeLastRow = 시간[i]; Line_0[i] = 라인; Line_1[i] = Line+Up_Down*Point; 위로 = 0; } } // 다음 막대의 인덱스 계산 } // 창 다시 그리기(); //------------------------------------------------ -------------------- 리턴(0); } //------------------------------------------------ -------------------- 정수 초기화() {
예, 첫 번째 옵션은 작동하지 않지만 비표준 시간 프레임에서 작업하지만 두 번째 옵션은 작동합니다. 모두에게 감사합니다!
첫 번째 옵션이 작동합니다 - 데모 계정(더 이상 확인할 시간이 없었음) 및 10년의 역사에 대한 테스터에서 최소 20일
추신: 글쎄, 그것은 작동하지 않습니다, 작동하지 않습니다 :)
첫 번째 옵션이 작동합니다 - 데모 계정(더 이상 확인할 시간이 없었음) 및 10년의 역사에 대한 테스터에서 최소 20일
추신: 글쎄, 그것은 작동하지 않습니다, 작동하지 않습니다 :)
음, 데모는 무섭지 않습니다. :) 하지만 실제 생활에서는 위험을 감수하지 않고 정상적으로 하는 것이 더 나을 것입니다... 차트 창이 매우 크고 최대값에 도달하지 않기 때문에 분명히 작동합니다... 글쎄, 아마도 그런 조언자 - 그렇게 할 것입니다 괜찮아. :)
그렇지 않습니다 - 막대 수를 다시 계산하면 히스토리를 교환하는 순간을 "놓칠 수 없습니다". 이 순간에는 조금 기다리는 것이 좋습니다. 히스토리는 TF가 끝날 때뿐만 아니라 때때로로드됩니다. TF의 시작이 로드되었습니다 - 란, 이것은 끔찍한 비밀입니다 쉿
:)
그렇지 않습니다 - 막대 수를 다시 계산하면 히스토리를 교환하는 순간을 "놓칠 수 없습니다". 이 순간에는 조금 기다리는 것이 좋습니다. 히스토리는 TF가 끝날 때로드 될뿐만 아니라 때로는 TF의 시작이 로드되었습니다 - 란, 이것은 끔찍한 비밀입니다 쉿
:)
두 번째 옵션도 작동하지 않는 것으로 나타났습니다... 표시기 배열에서 막대 번호는 어쨌든 변경되지 않습니다! 비표준 시간 프레임 때문에이 모든 것을 이해했습니다. M1에서 M2까지 얻은 표준 표시기 Period_Converter_Opt로 구성되며, M2 Bar를 열 때 Max의 절반이 됩니다. 창의 막대와 Max 값이 어떻게 되는지 알아보세요. 창의 막대에서 SetIndexBuffer 인덱스 배열의 형성이 중지됩니다...((
두 번째 옵션도 작동하지 않는 것으로 나타났습니다... 표시기 배열에서 막대 번호는 어쨌든 변경되지 않습니다! 비표준 시간 프레임 때문에이 모든 것을 이해했습니다. M1에서 M2까지 얻은 표준 표시기 Period_Converter_Opt로 구성되며, M2 Bar를 열 때 Max의 절반이 됩니다. 창의 막대와 Max 값이 어떻게 되는지 알아보세요. 창의 막대에서 SetIndexBuffer 인덱스 배열의 형성이 중지됩니다...((
그러나 적어도 새 막대 의 일부 매개변수는 기억된 것과 비교할 수 있습니까?
비표준 TF가 있는 경우 - 0으로 간주되는 막대에 0, 1이 아닌 인덱스가 있을 수 있습니까?
그러나 적어도 새 막대의 일부 매개변수는 기억된 것과 비교할 수 있습니까?
비표준 TF가 있는 경우 - 0으로 간주되는 막대에 0, 1이 아닌 인덱스가 있을 수 있습니까?
새로운 막대 인식 알고리즘 자체는 작동하지만 최대값에 도달한 후 차트가 표시됩니다. 창의 막대가 멈추면 SetIndexBuffer 인덱스 배열 의 형성이 멈추는 것으로 가정합니다. 여기에 문제가 있습니다. 전원을 켜면 모든 것이 잘 작동하고 차트가 멈추고 막대가 움직이고... 따라서 표시기가 작동하지 않습니다!
새로운 막대 인식 알고리즘 자체는 작동하지만 최대값에 도달한 후 차트가 표시됩니다. 창의 막대가 멈추면 SetIndexBuffer 인덱스 배열의 형성이 멈추는 것으로 가정합니다. 여기에 문제가 있습니다. 전원을 켜면 모든 것이 잘 작동하고 차트가 멈추고 막대가 움직이고... 따라서 표시기가 작동하지 않습니다!
코드는 어디에 있습니까? 시작할 때 그리는 경우 다시 그리기를 위한 막대 수가 잘못 결정된 문제일 수 있습니다.
코드는 어디에 있습니까? 시작할 때 그리는 경우 다시 그리기를 위한 막대 수가 잘못 결정된 문제일 수 있습니다.
#속성 표시기_차트_창
#property show_inputs
#property indicator_buffers 3 // 버퍼 수
#property indicator_color1 DarkSeaGreen // 첫 번째 줄의 색상
#property indicator_color2 SaddleBrown // 두 번째 줄의 색상
#property indicator_color3 SaddleBrown // 두 번째 줄의 색상
extern int 기록 = 300; // 계산 내역의 막대 수
extern int 화살표=1;
extern int Lines=0; // 계산할 막대의 수
//외부 정수 Left_Right= 5; // 수평 오프셋(막대)
외부 정수 up_down = 8; // 수직 오프셋(포인트)
정적 int up = 1, indlaststr = 600;
정적 날짜 시간 TimeLastRow, time0new, time0old;
이중 Line_0[],Line_1[],Line_2[]; // 데이터 배열 선언
//------------------------------------------------ --------------------
int init() // 특수 함수 init()
{
if (화살표==1 && 라인==1)int 스타일=1;
if (화살표==1 && 선!=1)스타일=3;
if (화살표!=1 && 줄==1)스타일=2;
switch(Style) // 헤더 스위치
{ // 본문 전환 시작
사례 1:
//------------------------------------------------ --------------------
SetIndexBuffer(0,Line_0); // 버퍼 0에 배열 할당
SetIndexStyle(0,DRAW_SECTION,STYLE_DOT,1); // 선 스타일
SetIndexEmptyValue(0,0.0);
//------------------------------------------------ --------------------
SetIndexBuffer(1, Line_1); // 버퍼 1에 배열 할당
SetIndexStyle(1,DRAW_ARROW,EMPTY,1); // 선 스타일
SetIndexArrow(1,217);
//------------------------------------------------ --------------------
SetIndexBuffer(2,Line_2); // 버퍼 2에 배열 할당
SetIndexStyle(2,DRAW_ARROW,EMPTY,1); // 선 스타일
SetIndexArrow(2,218);
//------------------------------------------------ --------------------
부서지다; // 옵션..
사례 2:
//------------------------------------------------ --------------------
SetIndexBuffer(0,Line_0); // 버퍼 0에 배열 할당
SetIndexStyle(0,DRAW_SECTION,STYLE_DOT,1); // 선 스타일
SetIndexEmptyValue(0,0.0);
부서지다;
사례 3:
//------------------------------------------------ --------------------
SetIndexBuffer(1, Line_1); // 버퍼 1에 배열 할당
SetIndexStyle(1,DRAW_ARROW,EMPTY,1); // 선 스타일
SetIndexArrow(1,217);
//------------------------------------------------ --------------------
SetIndexBuffer(2,Line_2); // 버퍼 2에 배열 할당
SetIndexStyle(2,DRAW_ARROW,EMPTY,1); // 선 스타일
SetIndexArrow(2,218);
//------------------------------------------------ --------------------
부서지다;
기본값: 중단; // 대소문자가 일치하지 않음
}
intk=막대; // 스위치 바디의 끝
리턴(0); // 사양을 종료합니다. 함수 초기화()
}
//------------------------------------------------ --------------------
int start() // 특수 함수 start()
{
//----+ 올바른 바의 수를 확인
// 지표 계산
if(기록-1 < 15)
리턴(0);
//+--- +=========================================+
int i, // 막대 인덱스
n, // 형식 매개변수(인덱스)
k, // 지시자 요소 인덱스. 정렬
counted_bars; // 계산된 막대의 수
이중선;
indlaststr = iBarShift(NULL, 0, VrLastStr);
//주석(indpoststr," ",up);
//------------------------------------------------ --------------------
/* Counted_bars=IndicatorCounted(); // 계산된 막대의 수
//---- 가능한 오류 확인
if(Counted_bars < 0)
리턴(-1);
i=Bars-Counted_bars-1+indlaststr; // 카운트되지 않은 첫 번째 인덱스
if (i>History-1) // 막대가 많으면 ..
i=이력-1; // ..주어진 양을 계산*/
time0new=시간[0];
if(time0old!=time0new)
{
i=이력-1;
time0old=time0new;
주석("막대 ",막대,", 기록 ",기록,", i ",i);
}
for(i=i-1; i >= 3; i--) // 셀 수 없는 막대를 반복합니다.
{
if(위쪽==0)
{
라인=낮음[i];
if (라인<낮은[i-1] && 라인<낮은[i-2] && TimeLastRow<시간[i])
{
TimeLastRow = 시간[i];
Line_0[i] = 라인;
Line_2[i] = Line-Up_Down*Point;
위로 = 1;
계속하다;
}
}
if(up==1) // 두 양초의 롤백 기준을 기반으로 fibo 그리드 구축
{
라인=높음[i];
if (Line>High[i-1] && Line>High[i-2]&& TimeLastRow<시간[i])
{
TimeLastRow = 시간[i];
Line_0[i] = 라인;
Line_1[i] = Line+Up_Down*Point;
위로 = 0;
}
}
// 다음 막대의 인덱스 계산
}
// 창 다시 그리기();
//------------------------------------------------ --------------------
리턴(0);
}
//------------------------------------------------ --------------------
정수 초기화()
{
리턴(0);
}
코드를 이해하기 어렵습니다. 키릴 자모의 변수 이름이 두렵습니다. 주석과 혼동합니다.
나는 이렇게 지표를 작성합니다. 이것은 지표의 표준 시작입니다.
코드를 이해하기 어렵습니다. 키릴 자모의 변수 이름이 두렵습니다. 주석과 혼동합니다.
예, 방금 시도했습니다 ... 키릴 자모)), Max. 막대 창의 막대가 더 이상 이동하지 않습니다.