커뮤니티
시스템 점검 바랍니다
2019-03-13 15:50:26
258
글번호 127042
렌꼬 시스템인데요
시간제한과 목표이익및 기타 이익표시가 전혀 반영이 안되고 있습니다
잘못된곳 수정 부탁 드립니다 감사 합니다.
input : vSSTIME(090000), vEETIME(150000);
Vars : TCOND(False);
If vSSTIME < vEETIME Then
Begin
IF vSSTIME <= TIME And TIME < vEETIME Then
TCOND = True;
Else
TCOND = False;
End
Else
Begin
IF vSSTIME <= TIME Or TIME < vEETIME Then
TCOND = True;
Else
TCOND = False;
End;
input:단위호가(18);
var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(100),하락(-100),저항선(0),지지선(0);
array:고[20](0),저[20](0),
고Bar[20](0),저Bar[20](0); // Index 개념이 아닌 벽돌개수.지지,저항선 계산시 사용
If TCOND Then
If Index == 0 || Date <= 2016 Then
{
벽돌크기 = PriceScale * 단위호가;
고[1] = C;
고Bar[1] = 0;
저[1] = C;
저Bar[1] = 0;
}
If 방향 == 0 Then
{
If 저[1] - 벽돌크기 >= C Then
{
벽돌개수 = Int((저[1] - C)/벽돌크기);
저[1] = 저[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
방향 = 하락;
}
Else If 고[1] + 벽돌크기 <= C Then
{
벽돌개수 = Int((C - 고[1])/벽돌크기);
고[1] = 고[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[1] - 벽돌크기 >= C Then
{
벽돌개수 = Int((저[1] - C)/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
저[1] = 저[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
}
If 저[1] + 2*벽돌크기 <= C Then
{
벽돌개수 = Int((C - 저[1])/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 저[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[1] + 벽돌크기 <= C Then
{
벽돌개수 = Int((C - 고[1])/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
고[1] = 고[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
}
If 고[1] - 2*벽돌크기 >= C Then
{
벽돌개수 = Int((고[1] - C)/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 고[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
방향 = 하락;
}
}
If TCOND Then
Begin
if 방향 == 상승 then Buy("돌파");
if 방향 == 하락 and 저[0]<저항선 then ExitLong("청산");
if 방향 == 하락 then Sell("돌파");
if 방향 == 상승 and 고[0]>지지선 then ExitShort("청산");
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyProfitTargetPercent(0.3);
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyPercentTrailingBefore(0.2), MyPercentTrailingAfter(10);
End;
SetStopEndofday(0);
답변 3
예스스탁 예스스탁 답변
2019-03-14 13:36:15
안녕하세요
예스스탁입니다.
1
Tcond자체는 구간에 맞게 true/false가 리턴되고 있습니다.
수식 상단에 불필요하게 Tcond로 제어되는 부분이 있어 삭제했습니다.
2
수식안에 목표수익등은 지정된 내용이 없습니다.
MyProfitTargetPercent등으로 수식에 외부변수만 있고 처리된 내용이 없어
해당 값으로 익절과 트레일링청산 추가했습니다.
3
input : vSSTIME(090000), vEETIME(150000);
Vars : TCOND(False);
If vSSTIME < vEETIME Then
Begin
IF vSSTIME <= TIME And TIME < vEETIME Then
TCOND = True;
Else
TCOND = False;
End
Else
Begin
IF vSSTIME <= TIME Or TIME < vEETIME Then
TCOND = True;
Else
TCOND = False;
End;
input:단위호가(18);
var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(100),하락(-100),저항선(0),지지선(0);
array:고[20](0),저[20](0),
고Bar[20](0),저Bar[20](0); // Index 개념이 아닌 벽돌개수.지지,저항선 계산시 사용
If Index == 0 || Date <= 20160101 Then
{
벽돌크기 = PriceScale * 단위호가;
고[1] = C;
고Bar[1] = 0;
저[1] = C;
저Bar[1] = 0;
}
If 방향 == 0 Then
{
If 저[1] - 벽돌크기 >= C Then
{
벽돌개수 = Int((저[1] - C)/벽돌크기);
저[1] = 저[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
방향 = 하락;
}
Else If 고[1] + 벽돌크기 <= C Then
{
벽돌개수 = Int((C - 고[1])/벽돌크기);
고[1] = 고[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[1] - 벽돌크기 >= C Then
{
벽돌개수 = Int((저[1] - C)/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
저[1] = 저[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
}
If 저[1] + 2*벽돌크기 <= C Then
{
벽돌개수 = Int((C - 저[1])/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 저[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[1] + 벽돌크기 <= C Then
{
벽돌개수 = Int((C - 고[1])/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
고[1] = 고[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
}
If 고[1] - 2*벽돌크기 >= C Then
{
벽돌개수 = Int((고[1] - C)/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 고[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
방향 = 하락;
}
}
If TCOND Then
Begin
if 방향 == 상승 then Buy("돌파매수");
if 방향 == 하락 and 저[0]<저항선 then ExitLong("매수청산");
if 방향 == 하락 then Sell("돌파매도");
if 방향 == 상승 and 고[0]>지지선 then ExitShort("매도청산");
End;
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyProfitTargetPercent(0.3);
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyPercentTrailingBefore(0.2), MyPercentTrailingAfter(10);
SetStopProfittarget( MyProfitTargetPercent,PercentStop);
SetStopTrailing(MyPercentTrailingAfter,MyPercentTrailingBefore,PercentStop,0);
SetStopEndofday(0);
즐거운 하루되세요
> vlfaud3 님이 쓴 글입니다.
> 제목 : 시스템 점검 바랍니다
> 렌꼬 시스템인데요
시간제한과 목표이익및 기타 이익표시가 전혀 반영이 안되고 있습니다
잘못된곳 수정 부탁 드립니다 감사 합니다.
input : vSSTIME(090000), vEETIME(150000);
Vars : TCOND(False);
If vSSTIME < vEETIME Then
Begin
IF vSSTIME <= TIME And TIME < vEETIME Then
TCOND = True;
Else
TCOND = False;
End
Else
Begin
IF vSSTIME <= TIME Or TIME < vEETIME Then
TCOND = True;
Else
TCOND = False;
End;
input:단위호가(18);
var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(100),하락(-100),저항선(0),지지선(0);
array:고[20](0),저[20](0),
고Bar[20](0),저Bar[20](0); // Index 개념이 아닌 벽돌개수.지지,저항선 계산시 사용
If TCOND Then
If Index == 0 || Date <= 2016 Then
{
벽돌크기 = PriceScale * 단위호가;
고[1] = C;
고Bar[1] = 0;
저[1] = C;
저Bar[1] = 0;
}
If 방향 == 0 Then
{
If 저[1] - 벽돌크기 >= C Then
{
벽돌개수 = Int((저[1] - C)/벽돌크기);
저[1] = 저[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
방향 = 하락;
}
Else If 고[1] + 벽돌크기 <= C Then
{
벽돌개수 = Int((C - 고[1])/벽돌크기);
고[1] = 고[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[1] - 벽돌크기 >= C Then
{
벽돌개수 = Int((저[1] - C)/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
저[1] = 저[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
}
If 저[1] + 2*벽돌크기 <= C Then
{
벽돌개수 = Int((C - 저[1])/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 저[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[1] + 벽돌크기 <= C Then
{
벽돌개수 = Int((C - 고[1])/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
고[1] = 고[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
}
If 고[1] - 2*벽돌크기 >= C Then
{
벽돌개수 = Int((고[1] - C)/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 고[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
방향 = 하락;
}
}
If TCOND Then
Begin
if 방향 == 상승 then Buy("돌파");
if 방향 == 하락 and 저[0]<저항선 then ExitLong("청산");
if 방향 == 하락 then Sell("돌파");
if 방향 == 상승 and 고[0]>지지선 then ExitShort("청산");
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyProfitTargetPercent(0.3);
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyPercentTrailingBefore(0.2), MyPercentTrailingAfter(10);
End;
SetStopEndofday(0);
vlfaud3
2019-03-14 14:03:41
답변 감사합니다.
적용을 시킨결과 시간제한 09:00 - 15:00:00 까지 매매하고
강제청산되는것은 전혀 반응이 안되고 있습니다
왜그러는지요? 개선 부탁 드립니다. 감사합니다.
예스스탁 예스스탁 답변
2019-03-14 14:19:07
안녕하세요
예스스탁입니다.
기존수식에 당일청산의 인자가 0으로 사용하지 않는 것으로 되어 있습니다.
vEETIME시간으로 청된되게 수정해 드립니다.
input : vSSTIME(090000), vEETIME(150000);
Vars : TCOND(False);
If vSSTIME < vEETIME Then
Begin
IF vSSTIME <= TIME And TIME < vEETIME Then
TCOND = True;
Else
TCOND = False;
End
Else
Begin
IF vSSTIME <= TIME Or TIME < vEETIME Then
TCOND = True;
Else
TCOND = False;
End;
input:단위호가(18);
var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(100),하락(-100),저항선(0),지지선(0);
array:고[20](0),저[20](0),
고Bar[20](0),저Bar[20](0); // Index 개념이 아닌 벽돌개수.지지,저항선 계산시 사용
If Index == 0 || Date <= 20160101 Then
{
벽돌크기 = PriceScale * 단위호가;
고[1] = C;
고Bar[1] = 0;
저[1] = C;
저Bar[1] = 0;
}
If 방향 == 0 Then
{
If 저[1] - 벽돌크기 >= C Then
{
벽돌개수 = Int((저[1] - C)/벽돌크기);
저[1] = 저[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
방향 = 하락;
}
Else If 고[1] + 벽돌크기 <= C Then
{
벽돌개수 = Int((C - 고[1])/벽돌크기);
고[1] = 고[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[1] - 벽돌크기 >= C Then
{
벽돌개수 = Int((저[1] - C)/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
저[1] = 저[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
}
If 저[1] + 2*벽돌크기 <= C Then
{
벽돌개수 = Int((C - 저[1])/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 저[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[1] + 벽돌크기 <= C Then
{
벽돌개수 = Int((C - 고[1])/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
고[1] = 고[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
}
If 고[1] - 2*벽돌크기 >= C Then
{
벽돌개수 = Int((고[1] - C)/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 고[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
방향 = 하락;
}
}
If TCOND Then
Begin
if 방향 == 상승 then Buy("돌파매수");
if 방향 == 하락 and 저[0]<저항선 then ExitLong("매수청산");
if 방향 == 하락 then Sell("돌파매도");
if 방향 == 상승 and 고[0]>지지선 then ExitShort("매도청산");
End;
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyProfitTargetPercent(0.3);
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyPercentTrailingBefore(0.2), MyPercentTrailingAfter(10);
SetStopProfittarget( MyProfitTargetPercent,PercentStop);
SetStopTrailing(MyPercentTrailingAfter,MyPercentTrailingBefore,PercentStop,0);
if vSSTIME < vEETIME Then
{
SetStopEndofday(vEETIME);
}
Else
{
if sdate != sdate[1] Then
SetStopEndofday(vEETIME);
if TCOND == True and Tcond[1] Then
SetStopEndofday(0);
}
즐거운 하루되세요
> vlfaud3 님이 쓴 글입니다.
> 제목 : 재문의 합니다
> 답변 감사합니다.
적용을 시킨결과 시간제한 09:00 - 15:00:00 까지 매매하고
강제청산되는것은 전혀 반응이 안되고 있습니다
왜그러는지요? 개선 부탁 드립니다. 감사합니다.
다음글
이전글