답변완료
피라미딩 청산
안녕하세요?
하나의 프로그램에 두개의 Sell 전략이 있을경우 S1 S2 청산로직이 다를 경우 문제가 있는것 같네요.
- 예를 들어 Sell 이 S1 S2 두개를 피라미딩으로 진입하게 되면 - 그후 하나가 청산하면 두번째 진입이 청산될때 대부분 S1 청산로직으로 청산됩니다.
S1이 익절하고 청산됬는대 나머지 진입(s2)이 대부분 S1 청산로직으로 청산됩니다.
S2 청산로직으로 청산할수 있나요?
첨부 파일에서 s1 이 청산될때 s-atr 청산명으로 청산되었는데..
s2 가 청산될때 또다시 s-atr 청산으로 청산됬습니다. S2는 S2-ATR 청산명으로 청산되어야 합니다.
청산로직
if IsEntryName("S1") then
{
If Data1(C) > Data1(Lowest(C, BarsSinceEntry+1) + Data1(ATR(NATR)) * ATRStopS) Then ExitShort("S-ATR",AtMarket,def,DEF,TdQ);
}
if IsEntryName("S2") then
{
If Data1(C) > Data1(Lowest(C, BarsSinceEntry+1) + Data1(ATR(NATR2)) * ATRStopS2) Then exitshort("S2-ATR",AtMarket,def,DEF,TdQ);
}
2022-09-04
1059
글번호 161962
시스템
답변완료
data2
재질문입니다.
data2에 해당하는 참조차트가 없는 실전차트에서 해당 사용자함수를 사용하는 시스템을
적용하게 되면, 그러면 에러가 발생하는건가요?
사용자 함수는 어떤 차트에 적용될지 모르는데도, data2가 잘 적용된다고 하시니,
결국에서 사용하는 차트에서 해당 참조데이트를 사용하느냐가 에러를 발생시키는지를
결정한다고 생각하면 되나요?
------------------------------------------------
안녕하세요
예스스탁입니다.
data2등 참조데이타값은 모든 수식에서 사용 할 수 있습니다.
사용자함수에서도 사용 가능합니다.
즐거운 하루되세요
> 건곤대 님이 쓴 글입니다.
> 제목 : DATA2
> 안녕하세요.
사용자함수를 만들고 싶은데, 최종 적용코자 하는 차트의 참조차트 data2의 값을 이용해 계산하는 내용이 있는데 사용할 수가 있나요?
아니면 사용자함수에서는 사용이 안되고, 해당시스템에서만 data2를 사용할수 있는건가요?
2022-09-02
1063
글번호 161958
사용자 함수
답변완료
문의 드립니다.
아래 지표는 트레이딩 뷰에 있는 것인데요,
예스트레이더에 사용할 수 있도록 전환이 가능한가요?
지표와 시스템 가능하시면, 각각 부탁드립니다.
감사합니다.
study("G-Channel Trend Detection",shorttitle="G-Trend",overlay=true)
length = input(100),src = input(close)
//----
a = 0.,b = 0.
a := max(src,nz(a[1])) - nz(a[1] - b[1])/length
b := min(src,nz(b[1])) + nz(a[1] - b[1])/length
avg = avg(a,b)
//----
crossup = b[1] < close[1] and b > close
crossdn = a[1] < close[1] and a > close
bullish = barssince(crossdn) <= barssince(crossup)
c = bullish ? color.lime : color.red
//plot(a,"Upper",color=color.blue,linewidth=2,transp=100)
//plot(b,"Lower",color=color.blue,linewidth=2,transp=100)
p1=plot(avg,"Average",color=c,linewidth=1,transp=90)
p2=plot(close,"Close price",color=c,linewidth=1,transp=100)
fill(p1,p2,color=c,transp=90)
showcross = input(true)
plotshape(showcross and not bullish and bullish[1] ? avg : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="Sell", textcolor=#ffffff, transp=0, offset=-1)
plotshape(showcross and bullish and not bullish[1] ? avg : na, location=location.absolute, style=shape.labelup, color=color.lime, size=size.tiny, text="Buy", textcolor=#ffffff, transp=0, offset=-1)
2022-09-03
1078
글번호 161957
지표
답변완료
GetUnclearedDeposits 함수_재질문
아래 답변관련하여,
장종료후 실전차트에서 해당함수가 포함된 시스템을 적용(messagelog)해보니, 현금뿐아니라 대용금액까지 합한 금액으로 GetUnclearedDeposits 함수가 리턴해주는것 같습니다.
즉, 계좌에서 주문가능한 금액을(그게 현금이든 대용이든 모두 합한액수) 리턴해주는거 같은데, 재확인부탁드립니다.
-------------------------------------
안녕하세요
예스스탁입니다.
예수금만 리턴합니다.
즐거운 하루되세요
> 건곤대 님이 쓴 글입니다.
> 제목 : GetUnclearedDeposits 함수
> GetUnclearedDeposits 함수는 해당계좌에 예수금과 대용금(기타 주식보유분)이 모두 있을경우, 현금보유분만 리턴하나요, 아니면 주문에 사용할수 있는 모든 금액을 리턴하나요?
2022-09-02
1217
글번호 161956
시스템
답변완료
while
안녕하세요
예시2>의 기준으로 While문은 진입문과 청산문을 오가는 것입니다.
처음에 진입문에서 돌다가 포지션이 잡히면 빠져나와 청산문으로 가고,
반대로 청산문에서 돌다가 포지션이 잡히면 진입문으로 오는것입니다.
while MarketPosition == 0 //포지션 진입할 때까지
While MarketPosition != 0 //포지션 청산할 때까지
안녕하세요
예스스탁입니다.
올려주신 내용으로는 어떤 이유로 while문을 사용하시는지 알수 없습니다.
while은 조건을 지정해 해당 조건이 만족하지 않을때까지 루프를 수행하기 위해 사용합니다.
for과 같은 루프횟수를 지정할 수 없을 경우에 사용합니다.
올리신 식은 거래량이 전봉대비 3배이상이고
종가가 50포인트 이상 상승하면 매수, 하락하면 매도입니다.
해상 수식에서 while문이 처리된 이유를 알수 없습니다.
즐거운 하루되세요
> 코퍼 님이 쓴 글입니다.
> 제목 : while
>
안녕하세요?
var : z(0);
z = 0;
while C[z] <= O[z]
{
z = z+1;
}
plot1(z);
상기식을 보고 만들었는데 에러가 발생합니다.
도와주세요~~^^
예시1>
Input : ratio(3),pd(50);
Input : LO(100),PT(30);
Vars : Break(False);
While Break = False
{
if MarketPosition == 0
Then
{
if v > (v[1]*ratio) Then
{
if c < (c[1]-pd) Then Buy("while Buy");
if c > (c[1]+pd) Then Sell("While Sell");
}
}
Else
Break = true;
}
while Break = False
{
if MarketPosition != 0
Then
{
ExitLong("W LO b",AtStop,LO);
ExitLong("W PT b",Atlimit,PT);
Exitshort("w LO s",AtStop,LO);
Exitshort("w PT s",Atlimit,PT);
}
Else
Break = true;
}
예시2>
Input : ratio(3),pd(50);
Input : LO(100),PT(30);
While MarketPosition == 0
{
if v > (v[1]*ratio) Then
{
if c < (c[1]-pd) Then Buy("while Buy");
if c > (c[1]+pd) Then Sell("While Sell");
}
}
while MarketPosition != 0
{
ExitLong("W LO b",AtStop,LO);
ExitLong("W PT b",Atlimit,PT);
Exitshort("w LO s",AtStop,LO);
Exitshort("w PT s",Atlimit,PT);
}
2022-09-02
1193
글번호 161954
시스템