예스스탁
예스스탁 답변
2024-07-26 11:51:10
안녕하세요
예스스탁입니다.
틱봉자체에서 분봉값은 정확한 계산은 불가합니다.
모든값은 근사값이라고 보셔야 합니다.
input : 타주기분1(3),타주기분2(15),타주기분3(60),EMAP(5),TMAP(20);
var : S1(0),D1(0),TM(0),TF1(0),TF2(0),TF3(0),cnt(0);
var : O2(0),O3(0),O21(0),O31(0);
var : EP(0),i1(0),i2(0),i3(0),Pre1(0),Pre2(0),Pre3(0),E1(0),E2(0),E3(0);
Var : Sum1(0),sum2(0),Tma(0),TLen(0),TMA1(0);
Array : C1[100](0),M1[100](0);
EP = 2/(EMAP+1);
TLen = Ceiling((TMAP + 1) * .5);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%타주기분1;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분1 > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and 타주기분1 > 1 and TM >= TM[1]+타주기분1) or
(Bdate == Bdate[1] and 타주기분1 == 1 and TM > TM[1]) Then
{
i1 = i1+1;
Pre1 = E1[1];
for cnt = 99 downto 1
{
C1[cnt] = C1[cnt-1];
m1[cnt] = m1[cnt-1];
}
TMA1 = TMA[1];
}
C1[0] = c;
if C1[TLen-1] > 0 Then
{
Sum1 = 0;
For cnt = 0 To TLen - 1
{
Sum1 = Sum1 + C1[cnt];
}
m1[0] = sum1/TLen;
}
if m1[TLen-1] > 0 Then
{
Sum2 = 0;
For cnt = 0 To TLen - 1
{
Sum2 = Sum2 + m1[cnt];
}
Tma = sum2/TLen;
}
if i1 <= 1 then
E1 = C;
else
E1 = C * EP + Pre1 * (1-EP);
TF2 = TM%타주기분2;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분2 > 1 and TF2 < TF2[1]) or
(Bdate == Bdate[1] and 타주기분2 > 1 and TM >= TM[1]+타주기분1) or
(Bdate == Bdate[1] and 타주기분2 == 1 and TM > TM[1]) Then
{
i2 = i2+1;
O2 = O;
O21 = O2[1];
Pre2 = E2[1];
}
if i2 <= 1 then
E2 = C;
else
E2 = C * EP + Pre2 * (1-EP);
TF3 = TM%타주기분3;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분3 > 1 and TF3 < TF3[1]) or
(Bdate == Bdate[1] and 타주기분3 > 1 and TM >= TM[1]+타주기분3) or
(Bdate == Bdate[1] and 타주기분3 == 1 and TM > TM[1]) Then
{
i3 = i3+1;
O3 = O;
O31 = O2[1];
Pre3 = E3[1];
}
if i3 <= 1 then
E3 = C;
else
E3 = C * EP + Pre3 * (1-EP);
if TMA1 > 0 and
E3 > O3 and pre3 < O31 and
E2 > O2 and pre2 < O21 and
TMA > E1 and TMA1 < pre1 Then
Buy();
if TMA1 > 0 and
E3 < O3 and pre3 > O31 and
E2 < O2 and pre2 > O21 and
TMA < E1 and TMA1 > pre1 Then
Sell();
}
즐거운 하루되세요
> 라몬 님이 쓴 글입니다.
> 제목 : 수정부탁드립니다.
> 안녕하세요
더운 날씨에 저희의 수고를 덜어주셔서 감사드립니다.
아래 시스템과 지표의 수식을 다시한번 수정 부탁드립니다.
고맙습니다.
진입은 틱챠트에서 합니다
1.매수조건 (3개의 조건이 한개라도 안맞을시 신호 불가)
- 1시간봉 시가선을 지수5 이평이 상향크로스
- 15 분봉 시가선을 지수5 이평이 상향크로스
- 3 분봉에서는 오직 20삼각가중선을 지수 5 이평이 상향 크로스할때 매수
(분봉 시가선, 삼각가중, 지수이평은 변수)
2.매도조건 (3개의 조건이 한개라도 안맞을시 신호 불가)
- 1시간봉 시가선을 지수5 이평이 하향크로스
- 15 분봉 시가선을 지수5 이평이 하향크로스
- 3 분봉에서는 오직 20삼각가중선을 지수 5 이평이 하향 크로스할때 매도
(분봉 시가선, 삼각가중, 지수이평은 변수)
1
input : 타주기분1(3),타주기분2(60),타주기분3(240),전환선기간(9);
var : S1(0),D1(0),TM(0),cnt(0),hh(0),ll(0),전환선(0);
var : TF1(0),TF2(0),TF3(0),O2(0),O3(0),H2(0),L2(0);
Array : H1[100](0),L1[100](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%타주기분1;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분1 > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and 타주기분1 > 1 and TM >= TM[1]+타주기분1) or
(Bdate == Bdate[1] and 타주기분1 == 1 and TM > TM[1]) Then
{
For cnt = 99 DownTo 1
{
H1[cnt] = H1[cnt-1];
L1[cnt] = L1[cnt-1];
}
H1[0] = H;
L1[0] = L;
}
if H1[0] > 0 and H > H1[0] Then
H1[0] = H;
if L1[0] > 0 and L < L1[0] Then
L1[0] = L;
TF2 = TM%타주기분2;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분2 > 1 and TF2 < TF2[1]) or
(Bdate == Bdate[1] and 타주기분2 > 1 and TM >= TM[1]+타주기분1) or
(Bdate == Bdate[1] and 타주기분2 == 1 and TM > TM[1]) Then
{
O2 = O;
H2 = H;
L2 = L;
}
if H2 > 0 and H > H2 Then
H2 = H;
if L2 > 0 and L < L2 Then
L2 = L;
TF3 = TM%타주기분3;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분3 > 1 and TF3 < TF3[1]) or
(Bdate == Bdate[1] and 타주기분3 > 1 and TM >= TM[1]+타주기분3) or
(Bdate == Bdate[1] and 타주기분3 == 1 and TM > TM[1]) Then
{
O3 = O;
}
if O2 > 0 and O3 > 0 and H1[전환선기간-1] > 0 and L1[전환선기간-1] > 0 Then
{
hh = 0;
ll = 0;
For cnt = 0 to 전환선기간-1
{
if hh == 0 or (hh > 0 and H1[cnt] > hh) Then
hh = H1[cnt];
if ll == 0 or (ll > 0 and L1[cnt] < ll) Then
ll = L1[cnt];
}
전환선 = (hh+ll)/2;
if C > O3 and
C > O2 and
C >= L2+(H2-L2)*0.25 and
C > 전환선 then
Buy();
if C < O3 and
C < O2 and
C <= H2-(H2-L2)*0.25 and
C < 전환선 then
Sell();
}
}
2
input : 타주기분1(3),타주기분2(60),타주기분3(240),전환선기간(9);
var : S1(0),D1(0),TM(0),cnt(0),hh(0),ll(0),전환선(0);
var : TF1(0),TF2(0),TF3(0),O2(0),O3(0),H2(0),L2(0),tx(0);
Array : H1[100](0),L1[100](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%타주기분1;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분1 > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and 타주기분1 > 1 and TM >= TM[1]+타주기분1) or
(Bdate == Bdate[1] and 타주기분1 == 1 and TM > TM[1]) Then
{
For cnt = 99 DownTo 1
{
H1[cnt] = H1[cnt-1];
L1[cnt] = L1[cnt-1];
}
H1[0] = H;
L1[0] = L;
}
if H1[0] > 0 and H > H1[0] Then
H1[0] = H;
if L1[0] > 0 and L < L1[0] Then
L1[0] = L;
TF2 = TM%타주기분2;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분2 > 1 and TF2 < TF2[1]) or
(Bdate == Bdate[1] and 타주기분2 > 1 and TM >= TM[1]+타주기분1) or
(Bdate == Bdate[1] and 타주기분2 == 1 and TM > TM[1]) Then
{
O2 = O;
H2 = H;
L2 = L;
}
if H2 > 0 and H > H2 Then
H2 = H;
if L2 > 0 and L < L2 Then
L2 = L;
TF3 = TM%타주기분3;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분3 > 1 and TF3 < TF3[1]) or
(Bdate == Bdate[1] and 타주기분3 > 1 and TM >= TM[1]+타주기분3) or
(Bdate == Bdate[1] and 타주기분3 == 1 and TM > TM[1]) Then
{
O3 = O;
}
if O2 > 0 and O3 > 0 and H1[전환선기간-1] > 0 and L1[전환선기간-1] > 0 Then
{
hh = 0;
ll = 0;
For cnt = 0 to 전환선기간-1
{
if hh == 0 or (hh > 0 and H1[cnt] > hh) Then
hh = H1[cnt];
if ll == 0 or (ll > 0 and L1[cnt] < ll) Then
ll = L1[cnt];
}
전환선 = (hh+ll)/2;
if C > O3 and
C > O2 and
C >= L2+(H2-L2)*0.25 and
C > 전환선 then
{
tx = Text_New(sDate,sTime,H,"●");
Text_SetColor(tx,Red);
Text_SetStyle(tx,2,1);
Text_SetSize(tx,12);
}
if C < O3 and
C < O2 and
C <= H2-(H2-L2)*0.25 and
C < 전환선 then
{
tx = Text_New(sDate,sTime,H,"●");
Text_SetColor(tx,Blue);
Text_SetStyle(tx,2,1);
Text_SetSize(tx,12);
}
plot1(O2);
plot2(O3);
plot3(전환선);
plot4(L2+(H2-L2)*0.25);
plot5(H2-(H2-L2)*0.25);
}
}