예스스탁
예스스탁 답변
2022-06-14 17:30:17
안녕하세요
예스스탁입니다.
청산식에 잘못된 내용이 있어 수정했습니다.
input : Per(0.1);
var : Tcond(false,Data1),entry(0,Data1),ST(0),ET(0),XT(0);
var : C2(0,data2),C3(0,data3),C4(0,data4);
IF XT > ST Then
SetStopEndofday(XT);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(XT);
}
if (sdate != sdate[1] and stime >= ET) or
(sdate == sdate[1] and stime >= ET and stime[1] < ET) Then
Tcond = False;
if Bdate != Bdate[1] Then
{
Tcond = true;
entry = 0;
if sTime < 80000 Then
{
ST = 70000;
ET = 213000;
XT = 050000;
}
Else
{
ST = 80000;
ET = 223000;
XT = 060000;
}
IF XT <= ST Then
{
SetStopEndofday(0);
}
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if Data2(Bdate != Bdate[1]) Then
c2 = Data2(c[1]);
if Data3(Bdate != Bdate[1]) Then
c3 = Data3(c[1]);
if Data4(Bdate != Bdate[1]) Then
c4 = Data4(c[1]);
if Tcond == true Then
{
if MarketPosition >= 0 and entry < 1 and
Data2(c) >= C2*(1+per/100) and Data3(c) >= C3*(1+per/100) and Data4(c) >= C4*(1+per/100) Then
Sell("s",AtMarket);
if MarketPosition <= 0 and entry < 1 and
Data2(c) <= C2*(1-per/100) and Data3(c) <= C3*(1-per/100) and Data4(c) <= C4*(1-per/100) Then
Buy("b",AtMarket);
}
if MarketPosition == 1 Then
{
if data2(c) > c2 or data3(c) > c3 or data4(c) > c4 Then
ExitLong();
}
if MarketPosition == -1 Then
{
if data2(c) < c2 or data3(c) < c3 or data4(c) < c4 Then
ExitShort();
}
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
아래 글번호 77643번 재질문입니다.
작성 주신 스크립트 검증 부탁드립니다.
청산신호가 진입과 동시에 발생됩니다.
data2, data3, data4값이 전일 대비 모두 하락하면 매수, 모두 하락하면 매도
진입하고 1개 이상 참조 값이 반전되면 청산하고자 합니다.
즉 매수 진입 후, 전일대비 data2, data3, data4 중 한개라도 전일 대비 상승하면 매수 청산
/ 매도 진입 후, 전일대비 data2, data3, data4 중 한개라도 전일 대비 하락하면 매도 청산
봉완성 익봉시가로 진입과 청산합니다.
input : Per(0.1);
var : Tcond(false,Data1),entry(0,Data1),ST(0),ET(0),XT(0);
var : C2(0,data2),C3(0,data3),C4(0,data4);
IF XT > ST Then
SetStopEndofday(XT);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(XT);
}
if (sdate != sdate[1] and stime >= ET) or
(sdate == sdate[1] and stime >= ET and stime[1] < ET) Then
Tcond = False;
if Bdate != Bdate[1] Then
{
Tcond = true;
entry = 0;
if sTime < 80000 Then
{
ST = 70000;
ET = 213000;
XT = 050000;
}
Else
{
ST = 80000;
ET = 223000;
XT = 060000;
}
IF XT <= ST Then
{
SetStopEndofday(0);
}
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if Data2(Bdate != Bdate[1]) Then
c2 = Data2(c[1]);
if Data3(Bdate != Bdate[1]) Then
c3 = Data3(c[1]);
if Data4(Bdate != Bdate[1]) Then
c4 = Data4(c[1]);
if Tcond == true Then
{
if MarketPosition >= 0 and entry < 1 and
Data2(c) >= C2*(1+per/100) and Data3(c) >= C3*(1+per/100) and Data4(c) >= C4*(1+per/100) Then
Sell("s",AtMarket);
if MarketPosition <= 0 and entry < 1 and
Data2(c) <= C2*(1-per/100) and Data3(c) <= C3*(1-per/100) and Data4(c) <= C4*(1-per/100) Then
Buy("b",AtMarket);
}
if MarketPosition == 1 Then
{
if data2(c) > c2 or data3(c) > c4 or data4(c) > c4 Then
ExitLong();
}
if MarketPosition == -1 Then
{
if data2(c) < c2 or data3(c) < c4 or data4(c) < c4 Then
ExitShort();
}