답변완료
여쭤 봅니다
아래 지표에서 봉에 여러 모양으로 표시가 됩니다.
제가 틱챠트로 보고 있는데 봉에 표시가 되는 시점이 세번째전에 표시가 되면서
현재봉이 나옵니다.
바로 표시가 봉에 바로 표시가 되거나 아니면 봉완성시에 표시가 되는 방법은 없는지
여쭤보고 싶습니다.
input : length(20);
input : len2(10);
input : showsignals(true);
input : highlighting(true);
var : upper(0),lower(0);
lower = lowest(L,length);
upper = highest(H,length);
plot1(upper, "Upper");
plot2(lower, "Lower");
var : up(0),down(0),sup(0),sdown(0);
var : k1(0),k2(0),k3(0),k4(0),i1(-1),i2(-1);
up=highest(high,length);
down=lowest(low,length);
sup=highest(high,len2);
sdown=lowest(low,len2);
if high >= up[1] Then
i1 = 0;
Else
{
if i1 >= 0 Then
i1 = i1+1;
}
if Low <= down[1] Then
i2 = 0;
Else
{
if i2 >= 0 Then
i2 = i2+1;
}
K1=iff(i1 <=i2, down , up);
K2=iff(i1 <= i2,sdown,sup);
K3=iff(close>K1,down,nan);
K4=iff(close<K1,up,nan);
plot3(K1,"Trend Line",red);
plot4(K2,"Exit Line",blue);
var : buySignal(False),sellSignal(False),buyExit(False),sellExit(False);
var : O1(-1),O2(-1),O3(-1),O4(-1);
var : E1(-1),E2(-1),E3(-1),E4(-1);
var : tx1(0),tx2(0),tx3(0),tx4(0);
var : tx5(0),tx6(0),tx7(0),tx8(0);
buySignal=high==upper[1] or CrossUp(high,upper[1]);
sellSignal = low==lower[1] or CrossUp(lower[1],low);
buyExit=low==sdown[1] or CrossUp(sdown[1],low);
sellExit = high==sup[1] or CrossUp(high,sup[1]);
if BuySignal == true Then
var1 = Index;
if sellSignal == true Then
var2 = Index;
if buyExit == true Then
var3 = Index;
if sellExit == true Then
var4 = Index;
O1= IFf(var1 > 0,Index-var1,-1);
O2= IFf(var2 > 0,Index-var2,-1);
O3= IFf(var3 > 0,Index-var3,-1);
O4= IFf(var4 > 0,Index-var4,-1);
if BuySignal[1] == true Then
var5 = Index;
if sellSignal[1] == true Then
var6 = Index;
if buyExit[1] == true Then
var7 = Index;
if sellExit[1] == true Then
var8 = Index;
E1= IFf(var5 > 0,Index-var5,-1);
E2= IFf(var6 > 0,Index-var6,-1);
E3= IFf(var7 > 0,Index-var7,-1);
E4= IFf(var8 > 0,Index-var8,-1);
if buySignal and O3<O1[1] Then
{
tx1 = Text_New(sDate,sTime,down,"●");
Text_SetColor(tx1,Green);
}
if buySignal and showsignals and O3<O1[1] Then
{
tx2 = Text_New(sDate,sTime,down,"▲");
Text_SetColor(tx2,Green);
}
if sellSignal and O4<O2[1] Then
{
tx3 = Text_New(sDate,sTime,up,"●");
Text_SetColor(tx3,Red);
}
if sellSignal and showsignals and O4<O2[1] Then
{
tx4 = Text_New(sDate,sTime,down,"▼");
Text_SetColor(tx4,Red);
}
if buyExit and O1<O3[1] Then
{
tx5 = Text_New(sDate,sTime,up,"●");
Text_SetColor(tx5,blue);
}
if buyExit and showsignals and O1<O3[1] Then
{
tx6 = Text_New(sDate,sTime,down,"▼");
Text_SetColor(tx6,blue);
}
if sellExit and O2<O4[1] Then
{
tx7 = Text_New(sDate,sTime,down,"●");
Text_SetColor(tx7,Yellow);
}
if sellExit and showsignals and O2<O4[1] Then
{
tx8 = Text_New(sDate,sTime,down,"▲");
Text_SetColor(tx8,blue);
}
2024-11-07
711
글번호 185072
지표
답변완료
신호와 시스템식의 합성식 문의(수정)
1. 공통전제 :아래 두 경우 각각 이어서 나오는 매도매수 신호 횟수를 각각 조정할 수 있게 만들고자 합니다. ( 이해를 돕고자 상세 설명 사진을 아래 2와 3경우 모두 보냈습니다 ) 이렇게 순서를 정해서 어떤 신호 이후 몇번까지만 표시를 나타낼 때 어떻게 하나 ?? 궁리중입니다.
2. 볼밴이격이 표시되어 강조된 캔들 다음에 일반 캔들(강조되는 캔들이 아닌 캔들을 말함) 나오고(만일 이 일반캔들의 갯수를 카운팅해야하고 그 숫자를 별도의 변수로 넣어서 가정해야 한다면 이도 변수로 설정할 수 있다), 그다음 이어서 나오는 시스템의 매수 혹은 매도 신호(macd 매수매도신호)가 나오는 경우( 그 나오는 횟수를 3번만(이 횟수는 변수로서 조정할 수 있게 한다) 나오게 시스템 신호를 만들고 싶습니다.
3. 또 볼밴이격이 표시되어 강조된 캔들과 동시에 macd 매수 매도 신호가 나오면 이후 이어서 나오는 신호( 첫 신호가 동시에 나오면 이어서 나오는 신호는 볼밴이격 강조표시 캔들과 동시든 나오든 아니든 상관없이 나오고 그 횟수를 카운팅하는 식임)를 딱 3번만 나오게(이것도 변수로 조정할 수 있게, 단 여기서는 변수를 0으로 할 수 있게 할 것(0 이면 신호가 나오지 않게 끈다는 뜻) 하고 나머지 신호는 나오지 않게 한다
시스템 신호 식은 더 더 아래에 있습니다
시스템 신호 식은 더 더 아래에 있습니다
볼밴이격 캔들 수식:
Inputs: Period(42), D(2), period2(0.17);
Variables: BBTop(0), BBMid(0), BBBot(0),Bwidth(0), BWidth2(0), BWidth3(0);
BBTop = BollBandUp(Period,D);
BBMid = ma(C,Period);
BBBot = BollBandDown(Period,D);
BWidth = ((BBTop - BBBot)/ BBMid)*100;
if BWidth<period2 Then
PlotPaintBar(High, Low, "이격",Yellow);
else
NoPlot(1);
위 캔들 후 바로 이어 나오는 아래 시스템 매도 매수 신호가 설정된 횟수만 나오게(변수로 조절 가능토록) 하고 싶습니다.
Input : shortPeriod(12), longPeriod(26);
Var : value(0);
value = MACD(shortPeriod, longPeriod);
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 0) Then
{
Sell();
}
2024-11-07
825
글번호 185063
시스템
답변완료
문의드립니다
1번
input : Period(20),dv(2);
input : 하단아래(3),하단위(4),상단위(3),상단아래(4);
var : BBup(0),BBmd(0),BBdn(0);
var : T(0),i1(0),i2(0),i3(0),i4(0);
BBup = BollBandUp(Period,dv);
BBmd = ma(c,Period);
BBdn = BollBandDown(Period,dv);
if CrossDown(C,BBdn) Then
{
T = -1;
i1 = 0;
}
if CrossUp(C,BBdn) Then
{
T = 1;
i2 = 0;
}
if CrossUp(C,BBup) Then
{
T = 2;
i3 = 0;
}
if CrossDown(C,BBup) Then
{
T = -2;
i4 = 0;
}
if T == -1 Then
i1 = i1+1;
if T == 1 Then
i2 = i2+1;
if T == 2 Then
i3 = i3+1;
if T == -2 Then
i4 = i4+1;
if MarketPosition <= 0 and T == 1 and i2 == 하단위 and i1 >= 하단아래 Then
Buy();
if MarketPosition >= 0 and T == -2 and i4 == 상단아래 and i3 >= 상단위 Then
Sell();
2번
input : Period(30),dv(2);
input : 하단아래(3),하단위(4),상단위(3),상단아래(4);
var : BBup(0),BBmd(0),BBdn(0);
var : T(0),i1(0),i2(0),i3(0),i4(0);
BBup = BollBandUp(Period,dv);
BBmd = ma(c,Period);
BBdn = BollBandDown(Period,dv);
if CrossDown(C,BBdn) Then
{
T = -1;
i1 = 0;
}
if CrossUp(C,BBdn) Then
{
T = 1;
i2 = 0;
}
if CrossUp(C,BBup) Then
{
T = 2;
i3 = 0;
}
if CrossDown(C,BBup) Then
{
T = -2;
i4 = 0;
}
if T == -1 Then
i1 = i1+1;
if T == 1 Then
i2 = i2+1;
if T == 2 Then
i3 = i3+1;
if T == -2 Then
i4 = i4+1;
if MarketPosition <= 0 and T == 1 and i2 == 하단위 and i1 >= 하단아래 Then
Buy();
if MarketPosition >= 0 and T == -2 and i4 == 상단아래 and i3 >= 상단위 Then
Sell();
수고 많으십니다
만들어 주신 수식인데 1번과 2번
같은 내용이나 변수만 약간 틀립니다
문의드릴 내용은
1번 시스템이 매수면 +1점 매도면 -1점
2번 시스템이 매수면 +1점 매도면 -1점
이렇게 2개 시스템에 점수를 합하여
+2점 이면 매수 -2점이면 매도 0점이면 청산
이런 수식을 부탁드립니다
감사합니다
2024-11-07
834
글번호 185058
시스템