답변완료
수식 질문드립니다.
https://www.yesstock.com/Board/View.asp?db=board100036&Ext=0&startpage=1&pageno=1&num=132355&ref=132315&Sort=&KeyField=Subject&KeyWord=%B8%B8%B1%E2
1. 위 게시판 참조해서 만들려고 해봤는데 잘 안되네요..
만기주일 경우만 stoptrailing 적용하고 싶습니다.
현재 아래식은 stoptrailing 이 만기주 아닌경우도 적용됩니다....
만기주만 되게 가능할까요?
2. 추가로 만기 이후도 날짜 카운트 가능하면 부탁드립니다.
월물 첫날 둘째날 셋째날 이정도 선까지 구분하고 싶습니다.
3. 트리플 만기일 지정가능한지 궁금합니다.
----------------------------
input : StartTime(91000),EndTime(150000);
#Input : shortPeriod(6), longPeriod(50);
Input : s1(5), s2(60);
input : aaa(-0.40),bbb(0.35);
input : 손절(3);
input : 익절(5);
input : sellfilter(0.25);
input : buyfilter(0.65);
input : N(5),MM(0.07);
input : jinpok(8.9);
input : losstick(10);
input : profittick(10);
input : loss(0);
input : profit(0);
#
var : YYYY(0),MMM(0);
var : ThisMonth1(0),ThisMonthXdate(0);
var : NextMonth1(0),NextMonthXdate(0);
var : Thurs(0),cnt(0),remain(0),mangi(0);
var : Tcond(false,Data1);
var : C2(0,Data2);
var : C3(0,Data3);
var : 최소이익(0),손실범위(0);
최소이익 = PriceScale*profittick;
손실범위 = PriceScale*losstick;
#value1 = ma(C, shortPeriod);
#value2 = ma(C, longPeriod);
Value3 = ma(C2, s1);
Value4 = ma(C2, s2);
if index == 0 or sdate != sdate[1] Then
{
YYYY = Floor(sDate / 10000)*10000;
MMM = Floor(FracPortion(sdate/10000)*100)*100;
thisMonth1 = YYYY+MMM+1;
if MMM+100 <= 1200 Then
NextMonth1 = YYYY+(MMM+100)+1;
Else
NextMonth1 = (YYYY+10000)+100+1;
Thurs = 0;
for cnt = 0 to 15
{
if DayOfWeek(thisMonth1+cnt) == 4 Then
{
Thurs = Thurs+1;
if Thurs == 2 Then
thisMonthXdate = thisMonth1+cnt;
}
}
Thurs = 0;
for cnt = 0 to 15
{
if DayOfWeek(NextMonth1+cnt) == 4 Then
{
Thurs = Thurs+1;
if Thurs == 2 Then
NextMonthXdate = NextMonth1+cnt;
}
}
if sdate <= thisMonthXdate then
{
remain = DateToJulian(thisMonthXdate)-DateToJulian(sdate);
}
Else
remain = DateToJulian(NextMonthXdate)-DateToJulian(sdate);
if remain == 0 then
mangi = 3;
else if remain >= 1 and remain <= 3 then
mangi = 2;
else if remain >= 4 and remain <= 10 then
mangi = 1;
Else
mangi = 0;
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
C2 = Data2(c);
C3 = Data3(c);
# 매수/매도청산
if Tcond == true Then
{
If CrossUP(value3, value4) and c3>buyfilter and (DayHigh(0)-DayLow(0)<jinpok) #data2(c) <= aaa and
Then
{
Buy();
if (DayHigh(0)-DayLow(0)>jinpok) and ((DayHigh(0)-(DayHigh(0)-DayLow(0))/2))<c Then ExitLong();
}
If CrossDown(value3, value4) and c3<sellfilter and (DayHigh(0)-DayLow(0)<jinpok) #data2(c) >= bbb and
Then
{
Sell();
if (DayHigh(0)-DayLow(0)>jinpok) and ((DayHigh(0)-(DayHigh(0)-DayLow(0))/2))>c Then ExitShort();
}
}
if Data2(Highest(C2,n) >= Lowest(C2,n)+MM)
and c2[0]<c2[3] Then ExitLong();
if Data2(Highest(C2,n) >= Lowest(C2,n)+MM)
and c2[0]>c2[3] Then exitshort();
SetStopEndofday(EndTime);
SetStoploss(손절,PointStop);
SetStopProfittarget(익절,PointStop);
if mangi==2 Then
{
#SetStopTrailing(손실범위 , 최소이익 , PointStop);
SetStopTrailing(loss ,profit , percentStop,0);
}
2021-03-11
831
글번호 146953
시스템
답변완료
문의
var : K1(0,data2),K2(0,data2),K3(0,data2);
var : Q1(0,data1),Q2(0,data1),W1(0,Data1),QQ(0,Data1);
K1 = data2(ma(c,10));
K2 = data2(ma(c,15));
K3 = data2(ma(c,20));
if crossup(k1,k2) then
Q1 = data1(c);
if crossup(k1,k3) then
Q2 = data1(c);
W1 = abs(Q1-Q2);
if MarketPosition <= 0 and crossup(K1,K3) then
{
buy();
QQ = Q2;
}
if MarketPosition == 1 and data1(C) >= QQ + W1 then
exitlong();
아래 수식의 반대 경우를 작성했는데
바른지요?
**********************************************************************************
안녕하세요
예스스탁입니다.
var : K1(0,data2),K2(0,data2),K3(0,data2);
var : Q1(0,data1),Q2(0,data1),W1(0,Data1),QQ(0,Data1);
K1 = data2(ma(c,10));
K2 = data2(ma(c,15));
K3 = data2(ma(c,20));
if crossdown(k1,k2) then
Q1 = data1(c);
if crossdown(k1,k3) then
Q2 = data1(c);
W1 = abs(Q1-Q2);
if MarketPosition >= 0 and crossdown(K1,K3) then
{
sell();
QQ = Q2;
}
if MarketPosition == -1 and data1(C) <= QQ - W1 then
exitshort();
즐거운 하루되세요
2021-03-10
615
글번호 146947
시스템
답변완료
시스탬
시스탬으로 변환부탁드립닏다
input : 기간(2);
var : T(5);
var1 = ema(C,기간);
if var1 > var1[1] Then
{
T = 1;
var2 = var1;
if T != T[1] Then
var22 = var2[1];
}
if var1 < var1[1] Then
{
var3 = var1;
T = -1;
if T != T[1] Then
var33 = var3[1];
}
plot1(var1,"지수이평");
plot2(var2,"이평상승",BLUE,def,iff(var22 > 0 and var2 > var22,0,0));
plot3(var3,"이평하락",RED,def,iff(var23 > 0 and var3 < var23,0,0));
2021-03-10
714
글번호 146941
시스템
답변완료
지표는 출력되는데 종목검색은 안되는 것 같습니다
감사합니다
종목검색이 가능하게 부탁드립니다
Input : Period(200), Dv(2), PERIOD1(50), dv1(2);
var : BBup(0),BBmd(0),BBdn(0), BBup1(0),BBmd1(0),BBdn1(0);
BBup = BollBandUp(Period,Dv);
BBmd = AMA(C,Period*3);
BBdn = BollBandDown(Period,Dv);
var1 = BBup-BBdn;
BBup1 = BollBandUp(Period1,Dv);
BBmd1 = AMA(C,Period1*3);
BBdn1 = BollBandDown(Period1,Dv);
var2 = BBup1-BBdn1;
#-볼린저밴드의 중심선이 상향 할때 %%색
if BBmd > BBmd[1] Then{
Var6 = BBUP;
}
#-볼린저밴드의 중심선이 하향 할때 ^^색
if BBmd < BBmd[1] Then{
Var6 = BBUP;
}
#-볼린저밴드의 중심선이 상향하면서 bands Width가 확장을 할때 %%색
if BBmd > BBmd[1] and var1 > var1[1] Then{
Var6 = BBUP;
}
#-볼린저밴드의 중심선이 상향하면서 bands Width가 수렴을 할때 ^^색
if BBmd > BBmd[1] and var1 < var1[1] Then{
Var6 = BBUP;
}
#-볼린저밴드의 중심선이 하향하면서 bands Width가 확장을 할때 ##색
if BBmd < BBmd[1] and var1 > var1[1] Then{
Var6 = BBUP;
}
#-볼린저밴드의 중심선이 하향하면서 bands Width가 수렴을 할때 @@색
if BBmd < BBmd[1] and var1 > var1[1] Then{
Var6 = BBUP;
}
//
#-볼린저밴드의 중심선이 상향 할때 %%색
if BBmd1 > BBmd1[1] Then{
Var7 = BBUP1;
}
#-볼린저밴드의 중심선이 하향 할때 ^^색
if BBmd1 < BBmd1[1] Then{
Var7 = BBUP1;
}
#-볼린저밴드의 중심선이 상향하면서 bands Width가 확장을 할때 %%색
if BBmd1 > BBmd1[1] and var2 > var2[1] Then{
Var7 = BBUP1;
}
#-볼린저밴드의 중심선이 상향하면서 bands Width가 수렴을 할때 ^^색
if BBmd1 > BBmd1[1] and var2 < var2[1] Then{
Var7 = BBUP1;
}
#-볼린저밴드의 중심선이 하향하면서 bands Width가 확장을 할때 ##색
if BBmd1 < BBmd1[1] and var2 > var2[1] Then{
Var7 = BBUP1;
}
#-볼린저밴드의 중심선이 하향하면서 bands Width가 수렴을 할때 @@색
if BBmd1 < BBmd1[1] and var2 > var2[1] Then{
Var7 = BBUP1;
}
IF CrossUP(Var7,Var6) TheN
FinD(1);
2021-03-10
1473
글번호 146940
종목검색