커뮤니티
질문드립니다
2015-06-29 19:25:58
126
글번호 87791
아래코드는 분봉에 일봉적용코드입니다
제가 원하는 부분은 지표로 점수화된것을 표현하는건데요
아래 코드를 이용해서
Length(5),Length(10),Length(20),Length(60)
이렇게 변수 4개를 넣고
TPBuy가 var5보다 크면 각각 1점씩 부가합니다
그러면 TPBuy가 변수5와 변수10 에서 var5보다 크면 총 2점
4개 모두 그러하면 4점이겠죠
부탁드립니다
#############################################################
Inputs: Length(5);
Variables: BCounter(0), BDownAmt(0), BUpAmt(0), BUpSum(0), BDownSum(0),TPBuy(0);
BUpSum = 0;
BDownSum = 0;
For BCounter = 0 To Length - 1 {
IF DayClose(BCounter) > dayClose(BCounter+1) Then{
IF DayClose(BCounter) == 0 Then
BUpAmt = 0;
Else
BUpAmt = 100 * (DayClose(BCounter)-DayClose(BCounter+1)) / DayClose(BCounter);
BDownAmt = 0;
}
Else{
BUpAmt = 0;
IF DayClose(BCounter) == 0 Then
BDownAmt = 0;
Else
BDownAmt = 100 * (DayClose(BCounter+1) - DayClose(BCounter)) / DayClose(BCounter);
}
BUpSum = BUpSum + BUpAmt;
BDownSum = BDownSum + BDownAmt;
}
IF BDownSum == 0 Then
TPBuy = 0;
Else
TPBuy = 100 * BUpSum / BDownSum;
###############################################################################
Variables: SCounter(0), SDownAmt(0), SUpAmt(0), SUpSum(0), SDownSum(0),TPSell(0);
SUpSum = 0;
SDownSum = 0;
For SCounter = 0 To Length - 1 {
IF DayClose(SCounter) > DayClose(SCounter+1) then {
IF Close[SCounter] == 0 then
SUpAmt = 0;
Else
SUpAmt = 100 * (DayClose(SCounter)-DayClose(SCounter+1)) / DayClose(SCounter);
SDownAmt = 0;
}
Else {
SUpAmt = 0;
IF DayClose(SCounter) == 0 then
SDownAmt = 0;
Else
SDownAmt = 100 * (DayClose(SCounter+1) - DayClose(SCounter)) / DayClose(SCounter);
}
SUpSum = SUpSum + SUpAmt;
SDownSum = SDownSum + SDownAmt;
}
IF SUpSum == 0 then
TPSell = 0;
Else
TPSell = 100 * SDownSum / SUpSum;
#####################################################################################################
if dayindex == 0 Then {
var1 = TPBuy ;
var2 = TPSell ;
}
IF DATE <> DATE[1] Then {
VAR3 = TPBuy[1] ;
var4 = TPSell[1] ;
}
VAR5 = NthMaxList(1,VAR1, VAR2, VAR3, VAR4) ;
답변 1
예스스탁 예스스탁 답변
2015-06-30 09:39:31
안녕하세요
예스스탁입니다.
Input: Length1(5),Length2(10),Length3(20),Length4(60);
var : cnt(0);
Var : BDownAmt1(0), BUpAmt1(0), BUpSum1(0), BDownSum1(0),TPBuy1(0);
Var : BDownAmt2(0), BUpAmt2(0), BUpSum2(0), BDownSum2(0),TPBuy2(0);
Var : BDownAmt3(0), BUpAmt3(0), BUpSum3(0), BDownSum3(0),TPBuy3(0);
Var : BDownAmt4(0), BUpAmt4(0), BUpSum4(0), BDownSum4(0),TPBuy4(0);
var : SDownAmt1(0), SUpAmt1(0), SUpSum1(0), SDownSum1(0),TPSell1(0);
var : SDownAmt2(0), SUpAmt2(0), SUpSum2(0), SDownSum2(0),TPSell2(0);
var : SDownAmt3(0), SUpAmt3(0), SUpSum3(0), SDownSum3(0),TPSell3(0);
var : SDownAmt4(0), SUpAmt4(0), SUpSum4(0), SDownSum4(0),TPSell4(0);
var : V11(0),V12(0),v13(0),v14(0),v15(0);
var : V21(0),V22(0),v23(0),v24(0),v25(0);
var : V31(0),V32(0),v33(0),v34(0),v35(0);
var : V41(0),V42(0),v43(0),v44(0),v45(0);
BUpSum1 = 0;
BDownSum1 = 0;
BUpSum2 = 0;
BDownSum2 = 0;
BUpSum3 = 0;
BDownSum3 = 0;
BUpSum4 = 0;
BDownSum4 = 0;
SUpSum1 = 0;
SDownSum1 = 0;
SUpSum2 = 0;
SDownSum2 = 0;
SUpSum3 = 0;
SDownSum3 = 0;
SUpSum4 = 0;
SDownSum4 = 0;
For cnt = 0 To Length4 {
if cnt < Length1 then{
IF DayClose(cnt) > dayClose(cnt+1) Then{
IF DayClose(cnt) == 0 Then
BUpAmt1 = 0;
Else
BUpAmt1 = 100 * (DayClose(cnt)-DayClose(cnt+1)) / DayClose(cnt);
BDownAmt1 = 0;
}
Else{
BUpAmt1 = 0;
IF DayClose(cnt) == 0 Then
BDownAmt1 = 0;
Else
BDownAmt1 = 100 * (DayClose(cnt+1) - DayClose(cnt)) / DayClose(cnt);
}
BUpSum1 = BUpSum1 + BUpAmt1;
BDownSum1 = BDownSum1 + BDownAmt1;
IF DayClose(cnt) > DayClose(cnt+1) then {
IF Close[cnt] == 0 then
SUpAmt1 = 0;
Else
SUpAmt1 = 100 * (DayClose(cnt)-DayClose(cnt+1)) / DayClose(cnt);
SDownAmt1 = 0;
}
Else {
SUpAmt1 = 0;
IF DayClose(cnt) == 0 then
SDownAmt1 = 0;
Else
SDownAmt1 = 100 * (DayClose(cnt+1) - DayClose(cnt)) / DayClose(cnt);
}
SUpSum1 = SUpSum1 + SUpAmt1;
SDownSum1 = SDownSum1 + SDownAmt1;
}
if cnt < Length2 then{
IF DayClose(cnt) > dayClose(cnt+1) Then{
IF DayClose(cnt) == 0 Then
BUpAmt2 = 0;
Else
BUpAmt2 = 100 * (DayClose(cnt)-DayClose(cnt+1)) / DayClose(cnt);
BDownAmt2 = 0;
}
Else{
BUpAmt2 = 0;
IF DayClose(cnt) == 0 Then
BDownAmt2 = 0;
Else
BDownAmt2 = 100 * (DayClose(cnt+1) - DayClose(cnt)) / DayClose(cnt);
}
BUpSum2 = BUpSum2 + BUpAmt2;
BDownSum2 = BDownSum2 + BDownAmt2;
IF DayClose(cnt) > DayClose(cnt+1) then {
IF Close[cnt] == 0 then
SUpAmt2 = 0;
Else
SUpAmt2 = 100 * (DayClose(cnt)-DayClose(cnt+1)) / DayClose(cnt);
SDownAmt2 = 0;
}
Else {
SUpAmt2 = 0;
IF DayClose(cnt) == 0 then
SDownAmt2 = 0;
Else
SDownAmt2 = 100 * (DayClose(cnt+1) - DayClose(cnt)) / DayClose(cnt);
}
SUpSum2 = SUpSum2 + SUpAmt2;
SDownSum2 = SDownSum2 + SDownAmt2;
}
if cnt < Length3 then{
IF DayClose(cnt) > dayClose(cnt+1) Then{
IF DayClose(cnt) == 0 Then
BUpAmt3 = 0;
Else
BUpAmt3 = 100 * (DayClose(cnt)-DayClose(cnt+1)) / DayClose(cnt);
BDownAmt3 = 0;
}
Else{
BUpAmt3 = 0;
IF DayClose(cnt) == 0 Then
BDownAmt3 = 0;
Else
BDownAmt3 = 100 * (DayClose(cnt+1) - DayClose(cnt)) / DayClose(cnt);
}
BUpSum3 = BUpSum3 + BUpAmt3;
BDownSum3 = BDownSum3 + BDownAmt3;
IF DayClose(cnt) > DayClose(cnt+1) then {
IF Close[cnt] == 0 then
SUpAmt3 = 0;
Else
SUpAmt3 = 100 * (DayClose(cnt)-DayClose(cnt+1)) / DayClose(cnt);
SDownAmt3 = 0;
}
Else {
SUpAmt3 = 0;
IF DayClose(cnt) == 0 then
SDownAmt3 = 0;
Else
SDownAmt3 = 100 * (DayClose(cnt+1) - DayClose(cnt)) / DayClose(cnt);
}
SUpSum3 = SUpSum3 + SUpAmt3;
SDownSum3 = SDownSum3 + SDownAmt3;
}
if cnt < Length4 then{
IF DayClose(cnt) > dayClose(cnt+1) Then{
IF DayClose(cnt) == 0 Then
BUpAmt4 = 0;
Else
BUpAmt4 = 100 * (DayClose(cnt)-DayClose(cnt+1)) / DayClose(cnt);
BDownAmt4 = 0;
}
Else{
BUpAmt4 = 0;
IF DayClose(cnt) == 0 Then
BDownAmt4 = 0;
Else
BDownAmt4 = 100 * (DayClose(cnt+1) - DayClose(cnt)) / DayClose(cnt);
}
BUpSum4 = BUpSum4 + BUpAmt4;
BDownSum4 = BDownSum4 + BDownAmt4;
IF DayClose(cnt) > DayClose(cnt+1) then {
IF Close[cnt] == 0 then
SUpAmt4 = 0;
Else
SUpAmt4 = 100 * (DayClose(cnt)-DayClose(cnt+1)) / DayClose(cnt);
SDownAmt4 = 0;
}
Else {
SUpAmt4 = 0;
IF DayClose(cnt) == 0 then
SDownAmt4 = 0;
Else
SDownAmt4 = 100 * (DayClose(cnt+1) - DayClose(cnt)) / DayClose(cnt);
}
SUpSum4 = SUpSum4 + SUpAmt4;
SDownSum4 = SDownSum4 + SDownAmt4;
}
}
IF BDownSum1 == 0 Then
TPBuy1 = 0;
Else
TPBuy1 = 100 * BUpSum1/ BDownSum1;
IF BDownSum2 == 0 Then
TPBuy2 = 0;
Else
TPBuy2 = 100 * BUpSum2/ BDownSum2;
IF BDownSum3 == 0 Then
TPBuy3 = 0;
Else
TPBuy3 = 100 * BUpSum3/ BDownSum3;
IF BDownSum4 == 0 Then
TPBuy4 = 0;
Else
TPBuy4 = 100 * BUpSum4/ BDownSum4;
IF SUpSum1 == 0 then
TPSell1 = 0;
Else
TPSell1 = 100 * SDownSum1 / SUpSum1;
IF SUpSum2 == 0 then
TPSell2 = 0;
Else
TPSell2 = 100 * SDownSum2 / SUpSum2;
IF SUpSum3 == 0 then
TPSell3 = 0;
Else
TPSell3 = 100 * SDownSum3 / SUpSum3;
IF SUpSum4 == 0 then
TPSell4 = 0;
Else
TPSell4 = 100 * SDownSum4 / SUpSum4;
if dayindex == 0 Then {
v11 = TPBuy1;
v12 = TPSell1;
v21 = TPBuy2;
v22 = TPSell2;
v31 = TPBuy3;
v32 = TPSell3;
v41 = TPBuy4;
v42 = TPSell4;
}
IF DATE <> DATE[1] Then {
V13 = TPBuy1[1] ;
v14 = TPSell1[1] ;
V23 = TPBuy2[1] ;
v24 = TPSell2[1] ;
V33 = TPBuy3[1] ;
v34 = TPSell3[1] ;
V43 = TPBuy4[1] ;
v44 = TPSell4[1] ;
}
V15 = NthMaxList(1,V11, V12, V13, V14) ;
V25 = NthMaxList(1,V21, V22, V23, V24) ;
V35 = NthMaxList(1,V31, V32, V33, V34) ;
V45 = NthMaxList(1,V41, V42, V43, V44) ;
var1 = iff(TPbuy1>V15,1,0);
var2 = iff(TPbuy2>V25,1,0);
var3 = iff(TPbuy3>V35,1,0);
var4 = iff(TPbuy4>V45,1,0);
value1 = var1+var2+var3+var4;
plot1(value1);
즐거운 하루되세요
> 9회말2아웃 님이 쓴 글입니다.
> 제목 : 질문드립니다
> 아래코드는 분봉에 일봉적용코드입니다
제가 원하는 부분은 지표로 점수화된것을 표현하는건데요
아래 코드를 이용해서
Length(5),Length(10),Length(20),Length(60)
이렇게 변수 4개를 넣고
TPBuy가 var5보다 크면 각각 1점씩 부가합니다
그러면 TPBuy가 변수5와 변수10 에서 var5보다 크면 총 2점
4개 모두 그러하면 4점이겠죠
부탁드립니다
#############################################################
Inputs: Length(5);
Variables: BCounter(0), BDownAmt(0), BUpAmt(0), BUpSum(0), BDownSum(0),TPBuy(0);
BUpSum = 0;
BDownSum = 0;
For BCounter = 0 To Length - 1 {
IF DayClose(BCounter) > dayClose(BCounter+1) Then{
IF DayClose(BCounter) == 0 Then
BUpAmt = 0;
Else
BUpAmt = 100 * (DayClose(BCounter)-DayClose(BCounter+1)) / DayClose(BCounter);
BDownAmt = 0;
}
Else{
BUpAmt = 0;
IF DayClose(BCounter) == 0 Then
BDownAmt = 0;
Else
BDownAmt = 100 * (DayClose(BCounter+1) - DayClose(BCounter)) / DayClose(BCounter);
}
BUpSum = BUpSum + BUpAmt;
BDownSum = BDownSum + BDownAmt;
}
IF BDownSum == 0 Then
TPBuy = 0;
Else
TPBuy = 100 * BUpSum / BDownSum;
###############################################################################
Variables: SCounter(0), SDownAmt(0), SUpAmt(0), SUpSum(0), SDownSum(0),TPSell(0);
SUpSum = 0;
SDownSum = 0;
For SCounter = 0 To Length - 1 {
IF DayClose(SCounter) > DayClose(SCounter+1) then {
IF Close[SCounter] == 0 then
SUpAmt = 0;
Else
SUpAmt = 100 * (DayClose(SCounter)-DayClose(SCounter+1)) / DayClose(SCounter);
SDownAmt = 0;
}
Else {
SUpAmt = 0;
IF DayClose(SCounter) == 0 then
SDownAmt = 0;
Else
SDownAmt = 100 * (DayClose(SCounter+1) - DayClose(SCounter)) / DayClose(SCounter);
}
SUpSum = SUpSum + SUpAmt;
SDownSum = SDownSum + SDownAmt;
}
IF SUpSum == 0 then
TPSell = 0;
Else
TPSell = 100 * SDownSum / SUpSum;
#####################################################################################################
if dayindex == 0 Then {
var1 = TPBuy ;
var2 = TPSell ;
}
IF DATE <> DATE[1] Then {
VAR3 = TPBuy[1] ;
var4 = TPSell[1] ;
}
VAR5 = NthMaxList(1,VAR1, VAR2, VAR3, VAR4) ;
이전글