답변완료
실제 매수/매도 시점 파악
안녕하세요.
[문제현상]
Buy() 함수를 실행한 시점 이후에 MarketPosition이 바로 1로 변하지 않는 문제.
아래 코드를 실행 시 MarketPosition이 1로 변하지 않아 같은 조건의 코드가 여러번 실행되어 Count가 비정상적으로 이루어집니다.
원하는 동작은 매수할 때 Count를 1개 올리는 것인데 랜덤(예:5) 하게 값이 올라갑니다.
1. 문제 현상의 이유와 함께 실제로 매수/매도 되는 시점을 파악할 수 있는 이벤트가 있는지 궁금합니다.
2. Buy() 함수 실행 후 언제 실제로 매수가 되는지 궁금합니다.
[문제 로그 예시]
2022-02-02 13:14:01 매수: 0, 1, 1
2022-02-02 13:14:01 매수: 0, 2, 1
2022-02-02 13:14:01 매수: 0, 3, 1
2022-02-02 13:14:01 매수: 0, 4, 1
2022-02-02 13:14:01 매수: 0, 5, 1
=> 같은 시간에 Buy함수를 5번 실행시킵니다. 이유가 무엇인가요?
[문제 코드]
if MarketPosition != 1 Then
{
If Condition3 or Condition6 then {
If Condition8 Then
{
If Condition9 Then
{
Count = Count + 1;
State = 1;
Buy("매수",OnClose,DEf,2);
MessageLog("매수 : %2.0f, %2.0f, %2.0f", MarketPosition, Count, State);
}
}
}
}
2022-02-06
991
글번호 156031
시스템
답변완료
N일간의 종가대비 최대등락/평균등락 가격표시
감사합니다
지난 20일간의 주가 변동 폭을 아래와 같은 방법으로
당일에 표시하고자 합니다.
1. 20일 동안 가장 컸던 고가폭 지표
지난 20일간의 전전일 종가대비
전일 고가의 가격 변동한 값들(X원, Y원..) 중에서
가장 크게 변동한 가격 값(Z원)을 찾아
당일에 전일 종가대비 가장 컸던 고가폭 지표(전일종가+Z원)로 표시
예) 전전일종가가 10,000원이고 전일고가가 11,000원이면
X원은 1,000원
전전전일종가가 12,000원이고 전전일고가가 14,000원이면
Y원은 2,000원...
위와 같이 20일 동안의 값을 구한 다음
기간(20일동안)중 가장 크게 변동한 값 Z원을 찾고(20일 동안의 Z원은 2,000원이라면)
전일종가 13,000원에
가장 크게 변동한 값 Z원 2,000원을 더하여
전일종가대비 기간(20일동안) 가장컸던 고가폭 지표로 표시 15,000원
2. 20일 동안 가장 컸던 저가폭 지표. 1번과 같은 예로...
지난 20일간의 전전일 종가대비
전일 저가의 가격 변동한 값들(X원, Y원..) 중에서
가장 크게 변동한 가격 값(Z원)을 찾아
당일에 전일 종가대비 변동이 가장 컸던 저가폭 지표(전일종가-Z원)로 표시
3. 20일 동안 전일종가대비 평균 고가폭 지표
지난 20일간의 전전일 종가대비
전일 고가의 가격 변동한 값들(X원,Y원...)의
평균 변동 가격 값(Z원)을 찾아
당일에 전일 종가대비 평균고가폭 지표(전일종가+Z원)로 표시
예)
전전일종가가 10,000원이고 전일고가가 11,000원이면
X원은 1,000원
전전전일종가가 12,000원이고 전전일고가가 14,000원이면
Y원은 2,000원
위와 같이 20일 동안의 값을 구한 다음
평균 변동 가격 값 Z원을 찾고[20일동안의 Z원은 1500원이라면, (X원+Y원)/2]
전일종가가 13,000원이라면
전일종가 13,000원에 평균변동가격 값 Z원 1,500원을 더하여
기간(20일동안)중 전일종가대비 평균 고가폭 지표로 표시 14,500원
4. 20일 동안 전일종가대비 평균 고가폭 지표. 3번과 같은 예로...
지난 20일간의 전전일 종가대비
전일 저가의 가격 변동한 값들(X원,Y원...)의
평균 변동 가격 값(Z원)을 찾아
당일에 전일 종가대비 평균저가폭 지표(전일종가-Z원)로 표시
5. 20주 동안 가장 컸던 고가폭 지표. 1번 지표의 주봉단위 지표
6. 20월 동안 가장 컸던 고가폭 지표. 1번 지표의 월봉단위 지표
7. 120분봉에서 20개봉 동안 가장 컸던 고가폭 지표. 1번 지표 응용 분봉단위 지표
예) 120분봉의 전전봉 종가가 10,000원이고 전봉고가가 11,000원이면
X원은 1,000원
전전전봉 종가가 12,000원이고 전전봉 고가가 14,000원이면
Y원은 2,000원...
위와 같이 20봉 동안의 값을 구한 다음
기간(20봉동안)중 가장 크게 변동한 값 Z원을 찾고(20봉동안의 Z원은 2,000원이라면)
전봉종가 13,000원에
가장 크게 변동한 값 Z원 2,000원을 더하여
전봉종가대비 기간(20봉동안) 가장컸던 고가폭 지표로 표시 15,000원
감사합니다.
2022-02-07
1079
글번호 156029
지표
답변완료
문의드립니다
input : per1(23.6),per2(50.0),per3(76.4);
var : hh(0),ll(0),dd(0),tt(0);
var : tl1(0),tl2(0),tl3(0),v1(0),v2(0),v3(0);
if bdate > bdate[1] then
{
hh = h;
ll = l;
dd = sdate[1];
tt = stime[1];
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
tl1 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
}
if h > hh and hh > 0 Then
{
hh = h;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
tl1 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
}
if l < ll and ll > 0 Then
{
ll = l;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
tl1 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
}
TL_SetColor(TL1,GRAY);
TL_SetSize(TL1,0);
TL_SetExtRight(TL1,true);
TL_SetColor(TL2,GRAY);
TL_SetSize(TL2,0);
TL_SetExtRight(TL2,true);
TL_SetColor(TL3,GRAY);
TL_SetSize(TL3,0);
TL_SetExtRight(TL3,true);
v1 = hh-(hh-ll)*(per1/100);
v2 = hh-(hh-ll)*(per2/100);
v3 = hh-(hh-ll)*(per3/100);
INPUTS: LENGTH1(5);
INPUTS: 색1(YELLOW),색2(RED), 굵기(1);
VARS : DEMA1(0),TL(0);
var1= EMA(C,LENGTH1);
value1= EMA(EMa(C,LENGTH1),LENGTH1);
DEMA1 = var1 * 2 - value1;
if C >DEMA1 Then
PLOT1(DEMA1, "DEMA1",GRAY);
Else
PLOT1(DEMA1, "DEMA1",GRAY);
if CrossUp(DEMA1,v1) or CrossUp(DEMA1,v2) or CrossUp(DEMA1,v3) Then
{
TL_Delete(tl);
tl = TL_New(sDate,sTime,DEMA1,NextBarSdate,NextBarStime,DEMA1);
TL_SetColor(tl,MAGENTA);
TL_SetSize(tl,3);
TL_SetExtRight(TL,true);
}
if CrossDown(DEMA1,v1) or CrossDown(DEMA1,v2) or CrossDown(DEMA1,v3) Then
{
TL_Delete(tl);
tl = TL_New(sDate,sTime,DEMA1,NextBarSdate,NextBarStime,DEMA1);
TL_SetColor(tl,lGREEn);
TL_SetSize(tl,3);
TL_SetExtRight(TL,true);
}
이것을 사용하다보면 60틱으로 사용하는데 처음에는 나오는데오랜시간이지나면 색갈이(수평선) 나오질않습니다 건수는10000으로 해놓아도 안나오는데 매시간마다나오게 해결방법이 있으면 수정부탁드립니다~~미리감사드립니다
2022-02-05
980
글번호 156023
지표