커뮤니티
시스템 문의
2012-03-08 22:30:03
377
글번호 48708
늘 감사드립니다.
잘 되면 술한자 꼭 사고 싶은데, 아직 요모양이네요...
답변 1
예스스탁 예스스탁 답변
2012-03-08 18:25:37
안녕하세요
예스스탁입니다.
1.
data1~data99까지 사용가능합니다.
단지 색만 data1~data6까지는 파란색으로 나머지는 검정색으로 표시됩니다.
2.
참조데이터는 일간시고저종가를 OpenD/HighD/LowD/CloseD함수를 이용해 표현하시면 됩니다.
data2의 전일종가 --> data2(CloseD(1))
data2의 전일고가 --> data2(HighD(1))
data2의 전일시가 --> data2(OpenD(1))
data2의 전전일종가 --> data2(LowD(2))
data3의 당일시가 --> data2(CloseD(1))
data3의 첫봉종가 --> data2(C[dayindex])
data3의 두번째의 저가 --> 두번째 봉부터는 값을 저장해 사용하셔야 합니다.
if data2(dayindex+1 == 2) then
var1 = data2(L);
data3의 5봉전의 고가 --> data2(H[5])
data4의 당일 1번째와 2번째 스윙하이
--> 아래식은 data4의 스윙하이를 당일 발생순서별로 값을 저장하는 식입니다.
당일 발생순서로 최대 9개 까지 저장됩니다. sh[1]이 첫번쨰 sh[2]가 두번째 순입니다. 아직 발생하지 않았으면 -1값입니다.
input : left(3),Right(3);
var : cnt(0,data4),Shcnt(0,data4);
Array : SH[10](0,data4);
if date != date[1] Then{
for cnt = 1 to 9{
Sh[cnt] = -1;
}
Shcnt = 0;
}
if data4(SwingHigh(1,H,Left,Right,Left+Right+1) != -1) Then{
SHcnt = SHcnt+1;
SH[Shcnt] = data4(H[right]);
}
data5의 전일 1번째,2번째 스윙하이 -->
PreSh[1]이 전일 1번째 , PreSh[2]가 전일 두번째입니다.
위식과 마찬가지로 9번째까지만 사용하실 수 있습니다.
input : left(3),Right(3);
var : cnt(0,data5),Shcnt(0,data5);
Array : SH[10](0,data5),PreSh[10](0,data5);
if date != date[1] Then{
for cnt = 1 to 9{
PreSh[cnt] = Sh[cnt];
Sh[cnt] = -1;
}
Shcnt = 0;
}
if data5(SwingHigh(1,H,Left,Right,Left+Right+1) != -1) Then{
SHcnt = SHcnt+1;
SH[Shcnt] = data5(H[right]);
}
3.
시스템에서는 진입신호가 있어야 청산신호가 발동될수 있습니다.
아래와 같이 식을 구성하시면 100을 넣으시면 차트 첫봉에 매수신호 찍히고
200을 넣으시면 차트 첫봉에 매도진입신호가 발생하며
청산은 당일만 발동합니다.
input : 시작(100);
if 시작 == 100 and index == 0 Then
buy();
if 시작 == 200 and index == 0 Then
sell();
if CurrentDate == sdate Then{
if 매수청산조건 Then
exitlong();
if 매도청산조건 Then
exitshort();
}
4.
가능하지 않습니다.
5.
input : k1(5),k2(10),k3(15),N1(10);
if MarketPosition == 0 and C <= H[dayindex]-PriceScale*K1 and stime < 143000 and C <= 2.5 and C >= 1.5 Then
Sell("s",OnClose,def,2);
if MarketPosition == -1 then{
if CurrentEntries < N1 and C <= dayhigh-PriceScale*(K1*(CurrentEntries+1)) and
stime < 143000 and C <= 2.5 and C >= 1.5 Then
sell("ss",OnClose,def,2);
if C >= lowest(L,BarsSinceEntry)+PriceScale*K2 Then
ExitShort();
if K3 > K2 Then
ExitShort("sx2",AtStop,lowest(L,BarsSinceEntry)+PriceScale*K3);
}
var1 = date - int(date/100)*100;
var2 = DayOfWeek(date);
if var1 >= 8 and var1 <= 14 and var2 == 4 then
Condition1 = True;
Else
Condition1 = False;
if Condition1 == true Then
SetStopEndofday(144800);
Else
SetStopEndofday(150300);
6.
input : k1(5),k2(10),k3(15),N1(10);
if MarketPosition == 0 and stime < 143000 and C <= 2.5 and C >= 1.5 Then
Sell("s",AtStop,H[dayindex]-PriceScale*K1,2);
if MarketPosition == -1 then{
if CurrentEntries < N1 and stime < 143000 and C <= 2.5 and C >= 1.5 Then
sell("ss",AtStop,dayhigh-PriceScale*(K1*(CurrentEntries+1)),2);
ExitShort("sx1",AtStop,lowest(L,BarsSinceEntry)+PriceScale*K2);
ExitShort("sx2",AtStop,lowest(L,BarsSinceEntry)+PriceScale*K3);
}
var1 = date - int(date/100)*100;
var2 = DayOfWeek(date);
if var1 >= 8 and var1 <= 14 and var2 == 4 then
Condition1 = True;
Else
Condition1 = False;
if Condition1 == true Then
SetStopEndofday(144800);
Else
SetStopEndofday(150300);
7
행사가별로는 제공되지 않아 해당 내용으로는 수식작성이 가능하지 않습니다.
즐거운 하루되세요
> 에구머니 님이 쓴 글입니다.
> 제목 : 시스템 문의
> 늘 감사드립니다.
잘 되면 술한자 꼭 사고 싶은데, 아직 요모양이네요...