커뮤니티
수식부탁드립니다-------------
2017-02-26 19:06:32
140
글번호 107252
/*tema1이 20봉중 가장 낮거나 가장높은 값이면 tema1에 tema2를 일치시켜주세요 감사합니다
매번 번거롭게해서미안합니다*/
Input: 보정시각(0),호가더하기(0),지수더하기(0),폭보정(1.5),지수호가테마LENGTH1(10),순매수LENGTH2(10),급변(0.05)
,순매수테마보정한계(0.3),순매수테마급증보정(0.5),순매수테마급감보정(0.5)
,지수테마보정한계(0.3),지수테마급증보정(0.5),지수테마급감보정(0.5) ;
var : AsksMA(0),BidsMA(0), Period(1),idx(0),EP(0),E11(0),E12(0),E13(0),E21(0),E22(0),E23(0);
Var : value(0);
Var : valuec(0);
var : va71(0);
var : va80(0);
var : va81(0);
var : va90(0);
var : va91(0);
var : va92(0);
var : va93(0);
var : va94(0);
var : va95(0);
VAR : TEMA1(0);
VAR : TEMA2(0);
VAR : TEMA3(0);
VAR : vmin(0);
VAR : vmax(0);
BidsMa = ma(bids,Period);
AsksMA = ma(asks,Period);
value = ma(bids,period)-ma(asks,period)+29000;
Plot2(BidsMA, "매수잔량이평");
Plot3(AsksMA, "매도잔량이평");
Plot4(value, "차");
//**************************************************************
//*************************************************************
va91=((c-c[1])/c[1]*100)*20000/20000;
va93=((value-value[1])/value[1]*70)*125/2900;
if Bdate != Bdate[1] Then{
idx = 0;
var1 = 100;
var2 = 100;
plot10(var1);
plot11(var2);
plot51(var2 +호가더하기 );
}
Else{
idx = idx+1;
var1 = var1+(var1*(va91/100));
var2 = var2+(var2*(va93/95));
plot10(var1+지수더하기 );
plot11(var2+호가더하기 );
plot51(var2+호가더하기 );
TEMA3 = (3 * Ema(var2+호가더하기 ,순매수LENGTH2)) - (3 * Ema(Ema(var2+호가더하기 ,순매수LENGTH2),순매수LENGTH2)) +
(Ema(Ema(Ema(var2+호가더하기 ,순매수LENGTH2),순매수LENGTH2),순매수LENGTH2));
if TEMA3 >TEMA3[1]+순매수테마보정한계 then TEMA3 = ((TEMA3 -TEMA3[1])*순매수테마급증보정)+TEMA3[1];
if TEMA3 <TEMA3[1]-순매수테마보정한계 then TEMA3 = TEMA3[1]-((TEMA3[1] -TEMA3)*순매수테마급감보정);
if TEMA3 >TEMA3[1]+50 then TEMA3 = ((TEMA3 -TEMA3[1])*0.9)+TEMA3[1];
if TEMA3 <TEMA3[1]-50 then TEMA3 = TEMA3[1]-((TEMA3[1] -TEMA3)*0.9);
plot52(TEMA3,"순매수테마");
}
if var2-var1 > 폭보정 Then var2=var1;
if var1-var2 > 폭보정 Then var2=var1;
EP = 2/(지수호가테마LENGTH1+1);
if idx == 0 Then{
E11 = var1;
E21 = var2;
}
Else{
E11 = var1 * EP + E11 * (1-EP);
E21 = var2 * EP + E21 * (1-EP);
}
if idx <= 1 Then{
E12 = E11;
E22 = E21;
}
Else{
E12 = E11 * EP + E12 * (1-EP);
E22 = E21 * EP + E22 * (1-EP);
}
if idx <= 2 Then{
E13 = E12;
E23 = E22;
}
Else{
E13 = E12 * EP + E13 * (1-EP);
E23 = E22 * EP + E23 * (1-EP);
}
TEMA1 = (3 * E11) - (3 * E12) + (E13);
if TEMA1 >TEMA1[1]+지수테마보정한계 then TEMA1 = ((TEMA1 -TEMA1[1])*지수테마급증보정)+TEMA1[1];
if TEMA1 <TEMA1[1]-지수테마보정한계 then TEMA1 = TEMA1[1]-((TEMA1[1] -TEMA1)*지수테마급감보정);
if TEMA2 >TEMA2[1]+지수테마보정한계 then TEMA2 = ((TEMA2 -TEMA2[1])*지수테마급증보정)+TEMA2[1];
if TEMA2 <TEMA2[1]-지수테마보정한계 then TEMA2 = TEMA2[1]-((TEMA2[1] -TEMA2)*지수테마급감보정);
TEMA2 = (3 * E21) - (3 * E22) + (E23);
PLOT30(TEMA1+지수더하기 ,"지수테마",iff((TEMA1 +지수더하기 )>(TEMA1 +지수더하기)[1]+00,BLACK,iff((TEMA1 +지수더하기 )<(TEMA1 +지수더하기 )[1]-00,BLACK,BLACK)));
PLOT31(TEMA2 +호가더하기,"호가테마");
if stime == 보정시각 then TEMA1 = TEMA2;
vmin = min(TEMA1 ,TEMA1 ,va71);
vmax = max(TEMA1 ,TEMA1 ,va71);
if TEMA1+지수더하기> TEMA2+호가더하기 Then{
var80 = (TEMA1+지수더하기- TEMA2 +호가더하기 )*0.5+TEMA2+호가더하기 ;
}
if TEMA1 < TEMA2+호가더하기 Then{
var80 = (TEMA2+호가더하기 -TEMA1+지수더하기)*0.5+TEMA1+지수더하기 ;
}
PLOT17(var80,"지호평균");
//테마합 일정 수량차이상의 급등락 표시
if TEMA3 > TEMA3[1]+ 급변 Then{plot21(vmin-0.05,"급등");}
if TEMA3 < TEMA3[1]- 급변 Then{plot22(vmin-0.05,"급락");}
va71 =( TEMA2+호가더하기 - TEMA1+지수더하기 )+100;
if (va71[1] )< (va71)then {
PLOT25((va71 )-0.02,"매수예비");
//PlaySound("C:₩예스트레이더₩data₩Sound₩pp.wav");
}
if (va71[1] )> (va71) Then{
PLOT26((va71 )-0.02,"매도예비");
// PlaySound("C:₩예스트레이더₩data₩Sound₩dingdong.wav");
}
PLOT60(va71,"55");
if (TEMA1[1]+지수더하기 )< (TEMA1+지수더하기) and (va71[1] )< (va71)then {
PLOT45((va71 )-0.02,"매수막대");
PlaySound("C:₩예스트레이더₩data₩Sound₩up.wav");
}
if (TEMA1[1]+지수더하기 )> (TEMA1+지수더하기) and (va71[1] )> (va71) Then{
PLOT46((va71 )-0.02,"매도막대");
PlaySound("C:₩예스트레이더₩data₩Sound₩dingdong.wav");
}
if va71[1]+급변 < va71 Then {
PLOT18((va71 )+0.01,"매도");
}
if va71[1]-급변 > va71 Then {
PLOT19((va71 )+0.01,"매수");
}
답변 1
예스스탁 예스스탁 답변
2017-02-27 18:02:58
안녕하세요
예스스탁입니다.
TEMA2 = (3 * E21) - (3 * E22) + (E23);
위의 내용을 아래와 같이 수정했습니다.
if highest(tema1,20) == tema1 or lowest(tema1,20) == tema1 Then
TEMA2 = tema1;
else
TEMA2 = (3 * E21) - (3 * E22) + (E23);
tema1이 20봉 최고가나 최저가이면 tema2를 tema1과 같은 값으로 저장합니다
Input: 보정시각(0),호가더하기(0),지수더하기(0),폭보정(1.5),지수호가테마LENGTH1(10),순매수LENGTH2(10),급변(0.05)
,순매수테마보정한계(0.3),순매수테마급증보정(0.5),순매수테마급감보정(0.5)
,지수테마보정한계(0.3),지수테마급증보정(0.5),지수테마급감보정(0.5) ;
var : AsksMA(0),BidsMA(0), Period(1),idx(0),EP(0),E11(0),E12(0),E13(0),E21(0),E22(0),E23(0);
Var : value(0);
Var : valuec(0);
var : va71(0);
var : va80(0);
var : va81(0);
var : va90(0);
var : va91(0);
var : va92(0);
var : va93(0);
var : va94(0);
var : va95(0);
VAR : TEMA1(0);
VAR : TEMA2(0);
VAR : TEMA3(0);
VAR : vmin(0);
VAR : vmax(0);
BidsMa = ma(bids,Period);
AsksMA = ma(asks,Period);
value = ma(bids,period)-ma(asks,period)+29000;
Plot2(BidsMA, "매수잔량이평");
Plot3(AsksMA, "매도잔량이평");
Plot4(value, "차");
//**************************************************************
//*************************************************************
va91=((c-c[1])/c[1]*100)*20000/20000;
va93=((value-value[1])/value[1]*70)*125/2900;
if Bdate != Bdate[1] Then{
idx = 0;
var1 = 100;
var2 = 100;
plot10(var1);
plot11(var2);
plot51(var2 +호가더하기 );
}
Else{
idx = idx+1;
var1 = var1+(var1*(va91/100));
var2 = var2+(var2*(va93/95));
plot10(var1+지수더하기 );
plot11(var2+호가더하기 );
plot51(var2+호가더하기 );
TEMA3 = (3 * Ema(var2+호가더하기 ,순매수LENGTH2)) - (3 * Ema(Ema(var2+호가더하기 ,순매수LENGTH2),순매수LENGTH2)) +
(Ema(Ema(Ema(var2+호가더하기 ,순매수LENGTH2),순매수LENGTH2),순매수LENGTH2));
if TEMA3 >TEMA3[1]+순매수테마보정한계 then TEMA3 = ((TEMA3 -TEMA3[1])*순매수테마급증보정)+TEMA3[1];
if TEMA3 <TEMA3[1]-순매수테마보정한계 then TEMA3 = TEMA3[1]-((TEMA3[1] -TEMA3)*순매수테마급감보정);
if TEMA3 >TEMA3[1]+50 then TEMA3 = ((TEMA3 -TEMA3[1])*0.9)+TEMA3[1];
if TEMA3 <TEMA3[1]-50 then TEMA3 = TEMA3[1]-((TEMA3[1] -TEMA3)*0.9);
plot52(TEMA3,"순매수테마");
}
if var2-var1 > 폭보정 Then var2=var1;
if var1-var2 > 폭보정 Then var2=var1;
EP = 2/(지수호가테마LENGTH1+1);
if idx == 0 Then{
E11 = var1;
E21 = var2;
}
Else{
E11 = var1 * EP + E11 * (1-EP);
E21 = var2 * EP + E21 * (1-EP);
}
if idx <= 1 Then{
E12 = E11;
E22 = E21;
}
Else{
E12 = E11 * EP + E12 * (1-EP);
E22 = E21 * EP + E22 * (1-EP);
}
if idx <= 2 Then{
E13 = E12;
E23 = E22;
}
Else{
E13 = E12 * EP + E13 * (1-EP);
E23 = E22 * EP + E23 * (1-EP);
}
TEMA1 = (3 * E11) - (3 * E12) + (E13);
if TEMA1 >TEMA1[1]+지수테마보정한계 then TEMA1 = ((TEMA1 -TEMA1[1])*지수테마급증보정)+TEMA1[1];
if TEMA1 <TEMA1[1]-지수테마보정한계 then TEMA1 = TEMA1[1]-((TEMA1[1] -TEMA1)*지수테마급감보정);
if TEMA2 >TEMA2[1]+지수테마보정한계 then TEMA2 = ((TEMA2 -TEMA2[1])*지수테마급증보정)+TEMA2[1];
if TEMA2 <TEMA2[1]-지수테마보정한계 then TEMA2 = TEMA2[1]-((TEMA2[1] -TEMA2)*지수테마급감보정);
if highest(tema1,20) == tema1 or lowest(tema1,20) == tema1 Then
tema2 = tema1;
else
TEMA2 = (3 * E21) - (3 * E22) + (E23);
PLOT30(TEMA1+지수더하기 ,"지수테마",iff((TEMA1 +지수더하기 )>(TEMA1 +지수더하기)[1]+00,BLACK,iff((TEMA1 +지수더하기 )<(TEMA1 +지수더하기 )[1]-00,BLACK,BLACK)));
PLOT31(TEMA2 +호가더하기,"호가테마");
if stime == 보정시각 then TEMA1 = TEMA2;
vmin = min(TEMA1 ,TEMA1 ,va71);
vmax = max(TEMA1 ,TEMA1 ,va71);
if TEMA1+지수더하기> TEMA2+호가더하기 Then{
var80 = (TEMA1+지수더하기- TEMA2 +호가더하기 )*0.5+TEMA2+호가더하기 ;
}
if TEMA1 < TEMA2+호가더하기 Then{
var80 = (TEMA2+호가더하기 -TEMA1+지수더하기)*0.5+TEMA1+지수더하기 ;
}
PLOT17(var80,"지호평균");
//테마합 일정 수량차이상의 급등락 표시
if TEMA3 > TEMA3[1]+ 급변 Then{plot21(vmin-0.05,"급등");}
if TEMA3 < TEMA3[1]- 급변 Then{plot22(vmin-0.05,"급락");}
va71 =( TEMA2+호가더하기 - TEMA1+지수더하기 )+100;
if (va71[1] )< (va71)then {
PLOT25((va71 )-0.02,"매수예비");
//PlaySound("C:₩예스트레이더₩data₩Sound₩pp.wav");
}
if (va71[1] )> (va71) Then{
PLOT26((va71 )-0.02,"매도예비");
// PlaySound("C:₩예스트레이더₩data₩Sound₩dingdong.wav");
}
PLOT60(va71,"55");
if (TEMA1[1]+지수더하기 )< (TEMA1+지수더하기) and (va71[1] )< (va71)then {
PLOT45((va71 )-0.02,"매수막대");
PlaySound("C:₩예스트레이더₩data₩Sound₩up.wav");
}
if (TEMA1[1]+지수더하기 )> (TEMA1+지수더하기) and (va71[1] )> (va71) Then{
PLOT46((va71 )-0.02,"매도막대");
PlaySound("C:₩예스트레이더₩data₩Sound₩dingdong.wav");
}
if va71[1]+급변 < va71 Then {
PLOT18((va71 )+0.01,"매도");
}
if va71[1]-급변 > va71 Then {
PLOT19((va71 )+0.01,"매수");
}
즐거운 하루되세요
> leekss1 님이 쓴 글입니다.
> 제목 : 수식부탁드립니다-------------
> /*tema1이 20봉중 가장 낮거나 가장높은 값이면 tema1에 tema2를 일치시켜주세요 감사합니다
매번 번거롭게해서미안합니다*/
Input: 보정시각(0),호가더하기(0),지수더하기(0),폭보정(1.5),지수호가테마LENGTH1(10),순매수LENGTH2(10),급변(0.05)
,순매수테마보정한계(0.3),순매수테마급증보정(0.5),순매수테마급감보정(0.5)
,지수테마보정한계(0.3),지수테마급증보정(0.5),지수테마급감보정(0.5) ;
var : AsksMA(0),BidsMA(0), Period(1),idx(0),EP(0),E11(0),E12(0),E13(0),E21(0),E22(0),E23(0);
Var : value(0);
Var : valuec(0);
var : va71(0);
var : va80(0);
var : va81(0);
var : va90(0);
var : va91(0);
var : va92(0);
var : va93(0);
var : va94(0);
var : va95(0);
VAR : TEMA1(0);
VAR : TEMA2(0);
VAR : TEMA3(0);
VAR : vmin(0);
VAR : vmax(0);
BidsMa = ma(bids,Period);
AsksMA = ma(asks,Period);
value = ma(bids,period)-ma(asks,period)+29000;
Plot2(BidsMA, "매수잔량이평");
Plot3(AsksMA, "매도잔량이평");
Plot4(value, "차");
//**************************************************************
//*************************************************************
va91=((c-c[1])/c[1]*100)*20000/20000;
va93=((value-value[1])/value[1]*70)*125/2900;
if Bdate != Bdate[1] Then{
idx = 0;
var1 = 100;
var2 = 100;
plot10(var1);
plot11(var2);
plot51(var2 +호가더하기 );
}
Else{
idx = idx+1;
var1 = var1+(var1*(va91/100));
var2 = var2+(var2*(va93/95));
plot10(var1+지수더하기 );
plot11(var2+호가더하기 );
plot51(var2+호가더하기 );
TEMA3 = (3 * Ema(var2+호가더하기 ,순매수LENGTH2)) - (3 * Ema(Ema(var2+호가더하기 ,순매수LENGTH2),순매수LENGTH2)) +
(Ema(Ema(Ema(var2+호가더하기 ,순매수LENGTH2),순매수LENGTH2),순매수LENGTH2));
if TEMA3 >TEMA3[1]+순매수테마보정한계 then TEMA3 = ((TEMA3 -TEMA3[1])*순매수테마급증보정)+TEMA3[1];
if TEMA3 <TEMA3[1]-순매수테마보정한계 then TEMA3 = TEMA3[1]-((TEMA3[1] -TEMA3)*순매수테마급감보정);
if TEMA3 >TEMA3[1]+50 then TEMA3 = ((TEMA3 -TEMA3[1])*0.9)+TEMA3[1];
if TEMA3 <TEMA3[1]-50 then TEMA3 = TEMA3[1]-((TEMA3[1] -TEMA3)*0.9);
plot52(TEMA3,"순매수테마");
}
if var2-var1 > 폭보정 Then var2=var1;
if var1-var2 > 폭보정 Then var2=var1;
EP = 2/(지수호가테마LENGTH1+1);
if idx == 0 Then{
E11 = var1;
E21 = var2;
}
Else{
E11 = var1 * EP + E11 * (1-EP);
E21 = var2 * EP + E21 * (1-EP);
}
if idx <= 1 Then{
E12 = E11;
E22 = E21;
}
Else{
E12 = E11 * EP + E12 * (1-EP);
E22 = E21 * EP + E22 * (1-EP);
}
if idx <= 2 Then{
E13 = E12;
E23 = E22;
}
Else{
E13 = E12 * EP + E13 * (1-EP);
E23 = E22 * EP + E23 * (1-EP);
}
TEMA1 = (3 * E11) - (3 * E12) + (E13);
if TEMA1 >TEMA1[1]+지수테마보정한계 then TEMA1 = ((TEMA1 -TEMA1[1])*지수테마급증보정)+TEMA1[1];
if TEMA1 <TEMA1[1]-지수테마보정한계 then TEMA1 = TEMA1[1]-((TEMA1[1] -TEMA1)*지수테마급감보정);
if TEMA2 >TEMA2[1]+지수테마보정한계 then TEMA2 = ((TEMA2 -TEMA2[1])*지수테마급증보정)+TEMA2[1];
if TEMA2 <TEMA2[1]-지수테마보정한계 then TEMA2 = TEMA2[1]-((TEMA2[1] -TEMA2)*지수테마급감보정);
TEMA2 = (3 * E21) - (3 * E22) + (E23);
PLOT30(TEMA1+지수더하기 ,"지수테마",iff((TEMA1 +지수더하기 )>(TEMA1 +지수더하기)[1]+00,BLACK,iff((TEMA1 +지수더하기 )<(TEMA1 +지수더하기 )[1]-00,BLACK,BLACK)));
PLOT31(TEMA2 +호가더하기,"호가테마");
if stime == 보정시각 then TEMA1 = TEMA2;
vmin = min(TEMA1 ,TEMA1 ,va71);
vmax = max(TEMA1 ,TEMA1 ,va71);
if TEMA1+지수더하기> TEMA2+호가더하기 Then{
var80 = (TEMA1+지수더하기- TEMA2 +호가더하기 )*0.5+TEMA2+호가더하기 ;
}
if TEMA1 < TEMA2+호가더하기 Then{
var80 = (TEMA2+호가더하기 -TEMA1+지수더하기)*0.5+TEMA1+지수더하기 ;
}
PLOT17(var80,"지호평균");
//테마합 일정 수량차이상의 급등락 표시
if TEMA3 > TEMA3[1]+ 급변 Then{plot21(vmin-0.05,"급등");}
if TEMA3 < TEMA3[1]- 급변 Then{plot22(vmin-0.05,"급락");}
va71 =( TEMA2+호가더하기 - TEMA1+지수더하기 )+100;
if (va71[1] )< (va71)then {
PLOT25((va71 )-0.02,"매수예비");
//PlaySound("C:₩예스트레이더₩data₩Sound₩pp.wav");
}
if (va71[1] )> (va71) Then{
PLOT26((va71 )-0.02,"매도예비");
// PlaySound("C:₩예스트레이더₩data₩Sound₩dingdong.wav");
}
PLOT60(va71,"55");
if (TEMA1[1]+지수더하기 )< (TEMA1+지수더하기) and (va71[1] )< (va71)then {
PLOT45((va71 )-0.02,"매수막대");
PlaySound("C:₩예스트레이더₩data₩Sound₩up.wav");
}
if (TEMA1[1]+지수더하기 )> (TEMA1+지수더하기) and (va71[1] )> (va71) Then{
PLOT46((va71 )-0.02,"매도막대");
PlaySound("C:₩예스트레이더₩data₩Sound₩dingdong.wav");
}
if va71[1]+급변 < va71 Then {
PLOT18((va71 )+0.01,"매도");
}
if va71[1]-급변 > va71 Then {
PLOT19((va71 )+0.01,"매수");
}
다음글
이전글