return(0); } //-------------------------------- int deinit() {
return(0); } //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(),limit,win_idx; double top;
이 함수는 차트의 왼쪽 상단 모서리에 사용자 정의 설명을 표시합니다. 매개변수는 모든 유형이 될 수 있습니다. 매개변수의 수는 64개를 초과할 수 없습니다. 배열은 Comment() 함수에 전달할 수 없습니다. 배열은 요소별로 인쇄되어야 합니다. 더블 데이터는 도트 뒤에 4자리의 10진수로 출력됩니다 . 숫자를 더 정확하게 표시하려면 DoubleToStr() 함수를 사용해야 합니다. bool, datetime 및 색상 유형은 숫자로 인쇄됩니다. 날짜/시간 데이터를 문자열로 출력하려면 TimeToStr() 함수를 사용하십시오.
줄 바꿈 문자 "\n" 또는 "\r\n"을 사용하여 출력 정보를 여러 줄로 구분할 수 있습니다. Alert() 및 Print() 함수 도 참조하십시오 .
alsu : 이 얘기를 하는 게 아니라 전문가가 매달린 곳에 뭐가 다른 걸까? 올바르게 쓰여졌다면 어디에 매달렸는지는 중요하지 않습니다. 적어도 몽골 증권 거래소 차트에 걸어두십시오. 그러나 내부에서 1분 동안 유로달러로 작동하도록 설정되어 있으면 그렇게 할 것입니다. 프로그래밍하는 것은 전혀 어렵지 않습니다. 원칙적으로 몇 줄만 변경하면 됩니다.
많은 설명 감사합니다!
내 유일한 관심사는 각 분 막대가 열릴 때 테스터에서 1분 수정이 시뮬레이션된다는 것입니다.
Open[0]을 iOpen (NULL,1,0)으로 변경하고 1분 막대의 여는 것을 확인하는 함수를 추가하려고 합니다.
몇 분이 지나고 코드를 수정하고 M5의 테스터에서 테스트했으며 이 경우 테스터가 등록되었지만 1분 막대가 열리지 않는지 확인하고 5분마다 수정합니다. 무서워하는. 모든 진드기의 모드에서 더 자주 수정했기 때문에 조금 더 좋습니다. 그러나 M1에서는 바 오프닝에서만 Open[0]과 iOpen(NULL,1,0)에서 동일한 방식으로 작동합니다. 어쨌든 감사합니다!
이제 저는 항상 녹색 iOpen을 사용할 것입니다. 나는 당신이 레드 오픈 없이 할 수 있음을 참조하십시오. 이익의 녹색은 빨간색 손실보다 더 즐겁습니다. (:))
큰 감사합니다!
귀하의 버전에서 표시기가 작동합니다!
그와 동시에 세 가지 작은 문제가 나타나서 MQL4 교재로 풀고 지표 예제를 복습해 보았지만 아무 소용이 없었다.
욕구, 시간, 기분이 있다면 이유를 알아내도록 도와주세요.
1. 표시기를 설정할 때 라인은 값 0(영)을 얻고 첫 번째 틱이 도착한 경우에만 최상위 변수의 값을 취하거나 표시기 매개변수 창을 열고 즉시 닫아야 합니다.
2. top 매개변수는 init()에 줄이 있지만 4번째 문자까지 계산됩니다.
IndicatorDigits(숫자+1);
그리고 라인
top=WindowPriceMax(win_idx);
나는 그것을 대체했다
top=NormalizeDouble((WindowPriceMax(win_idx)),Digits+1);
도움이되지 않습니다! 그리고 인디케이터 창의 스케일 수치는 5자리입니다.
3. 지표가 제거되어도 차트에서 주석 이 제거되지 않습니다.
코드
--------
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
double ExtMapBuffer1[],
ExtMapBuffer2[];
//--------------------------------
int init()
{
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);
IndicatorShortName("MACD_max-min_v2");
IndicatorDigits(Digits+1);
return(0);
}
//--------------------------------
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted(),limit,win_idx;
double top;
if(counted_bars>0)counted_bars--;
limit=Bars-counted_bars;
win_idx=WindowFind("MACD_max-min_v2");
for(int i=0;i<limit;i++)
{
ExtMapBuffer1[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);
ExtMapBuffer2[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,i);
}
// top=WindowPriceMax(win_idx);
top=NormalizeDouble((WindowPriceMax(win_idx)),Digits+1);
Comment( "\n"," top = ",top);
ObjectDelete("max");
if(ObjectFind("max")!=win_idx)
{
ObjectCreate("max",OBJ_HLINE,win_idx,Time[0],top);
ObjectSet("max",OBJPROP_COLOR,Yellow);
ObjectSet("max",OBJPROP_WIDTH,0);
}
return(0);
}
//+------------------------------------------------------------------+
추신
주석 문자열을 지우려면 Comment("");를 deinit()에 삽입하십시오.
기술 편집 - 고문처럼 상단 표시줄에 있는 SRC 버튼을 사용하여 코드를 붙여넣습니다. 훨씬 더 읽기 쉬울 것입니다.
추신
주석 문자열을 지우려면 Comment("");를 deinit()에 삽입하십시오.
배열은 Comment() 함수에 전달할 수 없습니다. 배열은 요소별로 인쇄되어야 합니다.
더블 데이터는 도트 뒤에 4자리의 10진수로 출력됩니다 . 숫자를 더 정확하게 표시하려면 DoubleToStr() 함수를 사용해야 합니다.
bool, datetime 및 색상 유형은 숫자로 인쇄됩니다.
날짜/시간 데이터를 문자열로 출력하려면 TimeToStr() 함수를 사용하십시오.
줄 바꿈 문자 "\n" 또는 "\r\n"을 사용하여 출력 정보를 여러 줄로 구분할 수 있습니다.
Alert() 및 Print() 함수 도 참조하십시오 .
가격 이 수평선 을 넘었다....
그리고 이 라인은 어떻게 설명해야 할까요?
여보세요,
여기 문제가 있습니다.
PERIOD_H1에서 작업합니다.
시간이 끝날 때 닫으려면 다음을 수행합니다.
시초에 위치를 열려면 다음을 수행합니다.그러나 테스트에서 다음과 같이 나타납니다.
나는 그것을 이해할 수 없다, 내가 어디에서 잘못되고 있는가?
항상 그런 식으로 작동하지는 않지만 발생합니다.
답변해 주신 분들 감사합니다 :)
이 얘기를 하는 게 아니라 전문가가 매달린 곳에 뭐가 다른 걸까? 올바르게 쓰여졌다면 어디에 매달렸는지는 중요하지 않습니다. 적어도 몽골 증권 거래소 차트에 걸어두십시오. 그러나 내부에서 1분 동안 유로달러로 작동하도록 설정되어 있으면 그렇게 할 것입니다. 프로그래밍하는 것은 전혀 어렵지 않습니다. 원칙적으로 몇 줄만 변경하면 됩니다.
많은 설명 감사합니다!
내 유일한 관심사는 각 분 막대가 열릴 때 테스터에서 1분 수정이 시뮬레이션된다는 것입니다.
Open[0]을 iOpen (NULL,1,0)으로 변경하고 1분 막대의 여는 것을 확인하는 함수를 추가하려고 합니다.
몇 분이 지나고 코드를 수정하고 M5의 테스터에서 테스트했으며 이 경우 테스터가 등록되었지만 1분 막대가 열리지 않는지 확인하고 5분마다 수정합니다. 무서워하는. 모든 진드기의 모드에서 더 자주 수정했기 때문에 조금 더 좋습니다. 그러나 M1에서는 바 오프닝에서만 Open[0]과 iOpen(NULL,1,0)에서 동일한 방식으로 작동합니다. 어쨌든 감사합니다!
이제 저는 항상 녹색 iOpen을 사용할 것입니다. 나는 당신이 레드 오픈 없이 할 수 있음을 참조하십시오. 이익의 녹색은 빨간색 손실보다 더 즐겁습니다. (:))
여보세요,
여기 문제가 있습니다.
PERIOD_H1에서 작업합니다.
시간이 끝날 때 닫으려면 다음을 수행합니다.
시초에 위치를 열려면 다음을 수행합니다.그러나 테스트에서 다음과 같이 나타납니다.
나는 그것을 이해할 수 없다, 내가 어디에서 잘못되고 있는가?
항상 그런 식으로 작동하지는 않지만 발생합니다.
답변해 주신 분들 감사합니다 :)
친구가 다음과 같이 제안했습니다.
TimeCurrent() 대신
TimeSeconds(TimeCurrent())
그리고 효과가 있었습니다.