커뮤니티
18406 번 다시한번 문의합니다
2011-05-03 17:12:58
629
글번호 38277
18406 재문의
오늘 당일만 계산해서 나온수식맞나요?
답변 2
예스스탁 예스스탁 답변
2011-05-03 18:30:16
안녕하세요
예스스탁입니다.
날짜가 변경되면 초기화를 하는 내용을 추가했습니다.
input:단위호가(14),
단위호가2(14),
타주기구분(1), //분봉(1),일봉(2),주봉(3),월봉(4)
분봉구분(60); //타주기가 분봉일 때
var:j(0),상승(100),하락(-100),분봉(1),일봉(2),주봉(3),월봉(4),
벽돌크기(0),벽돌크기2(0),벽돌개수(0),방향(0),방향2(0);
array:고[10](0),저[10](0),고2[10](0),저2[10](0);
If 단위호가 <= 단위호가2 Then
{
#==========================================#
# 초기 처리
#==========================================#
If DayIndex == 0 Then
{
벽돌크기 = PriceScale * 단위호가;
벽돌크기2 = PriceScale * 단위호가2;
고[0] = C;
저[0] = C;
고2[0] = C;
저2[0] = C;
방향 = 0;
방향2 = 0;
}
#==========================================#
# 렌코 계산
#==========================================#
If 방향 == 0 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
Else If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
}
If 저[0] + 2*벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-저[0])/벽돌크기,9));
For j = 8 DownTo 0
{
저[j+1] = 저[j];
}
고[0] = 저[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
}
If 고[0] - 2*벽돌크기 >= C Then
{
벽돌개수 = Int(Round((고[0]-C)/벽돌크기,9));
For j = 8 DownTo 0
{
고[j+1] = 고[j];
}
저[0] = 고[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
}
#==========================================#
# 렌코2 계산
#==========================================#
If (타주기구분 == 분봉 && Mod(DayIndex(),(분봉구분/BarInterval)) == 0 && C[1] > 0) ||
(타주기구분 == 일봉 && Date[1] < Date) ||
(타주기구분 == 주봉 && Date[1] < Date && DayOfWeek(Date[1]) >= DayOfWeek(Date)) ||
(타주기구분 == 월봉 && Int(Date/100)[1] < Int(Date/100)) Then
{
If 방향2 == 0 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
Else If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 하락 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
}
If 저2[0] + 2*벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-저2[0])/벽돌크기2,9));
For j = 8 DownTo 0
{
저2[j+1] = 저2[j];
}
고2[0] = 저2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 상승 Then
{
If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
}
If 고2[0] - 2*벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((고2[0]-C[1])/벽돌크기2,9));
For j = 8 DownTo 0
{
고2[j+1] = 고2[j];
}
저2[0] = 고2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
}
}
#==========================================#
# 시스템식
#==========================================#
If 방향 == 상승 && 방향2 == 상승 Then Buy();
If 방향 == 하락 && 방향2 == 하락 Then Sell();
If 방향 != 방향2 Then
{
ExitLong();
ExitShort();
}
}
신호도 당일만 나오게 하고자 하시면
buy sell 조건식을 if sdate == currentdate then
조건으로 묶으시면 됩니다.
즐거운 하루되세요
> 하루우유 님이 쓴 글입니다.
> 제목 : 18406 번 다시한번 문의합니다
> 18406 재문의
오늘 당일만 계산해서 나온수식맞나요?
회원
2012-02-27 17:41:29
관리자님에 의해 삭제된 답변입니다.
다음글
이전글