커뮤니티
한시간에 두번만 진입을 위한 수식
2016-11-02 00:54:27
92
글번호 103595
안녕하세요,
현재 data1로 5분봉을, data2로 60분봉을 활요하는 시스템을 사용 중에 있습니다 (해외선물)
질문1) "B1"이라는 매수진입 수식에 대하여 60봉내에서 두번만 진입주문을 발생시키고 싶다면 어떻게 작성하면 될까요? (청산이 동일 60분 봉에서 두번 이루어진다면, 다음 60분 봉까지 추가진입 금지)
질문2) Data2의 open 값을 가지고 오면 봉이 완성된 이전 봉의 값을 가지고 옵니다. 만약 60분봉의 첫5분봉의 open을 60분봉 open으로 표시하고자하면 어떻게 해야할까요? (시스템이 아니라 지표로 부탁드립니다.)
질문3) 지난번에 60분봉을 구성하는 첫 5분봉의 종가에 신호가 발생하는 것과 관련하여 아래와 같은 답변을 주셨는데, 여기서 TF = data1(TimeToMinutes(stime)%60); 이 어떤 의미 인것인가요? %60이라는것을 함수로 활용한 것을 처음봐서 글로 설명해주시면 감사하겠습니다.
var : TF(0,data1);
TF = data1(TimeToMinutes(stime)%60);
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < tF[1]) Then{
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 then
ExitShort("sx");
}
답변 1
예스스탁 예스스탁 답변
2016-11-02 10:43:59
안녕하세요
예스스탁입니다.
1.
var : TF(0,data1),entry(0,data1);
TF = data1(TimeToMinutes(stime)%60);
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < tF[1]) Then{
entry = 0;
}
if MarketPosition == 1 and MarketPosition[1] != 1 and IsEntryName("B1") == true Then
entry = entry+1;
if entry < 2 and 매수진입조건 Then
buy("B1");
2
차트에서 데이터는 항상 완성된 봉의 값만 사용할수 있습니다.
현재 미완성의 봉의 값은 알수가 없습니다.
그러므로 60분봉의 시가를 이용하려면
주종목(data1)에서 계산해 사용해야 합니다.
60분봉인 참조데이터에서는 현재봉이 미완성이므로 값을 가져와 사용할수 없습니다.
var : TF(0,data1),OV(0,data1);
TF = data1(TimeToMinutes(stime)%60);
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < tF[1]) Then{
OV = O;
}
plot1(Ov);
3
TimeToMinutes은 시간을 밤0시 이후에 경과된 분수로 리턴하는 함수입니다.
예를 들어 현재 10시이면 600분, 10시30분이면 630분, 11시이면 660분으로 리턴합니다.
TimeToMinutes(stime)%60
위 내용은 0시이후 경과된 분수를 60으로 나누고 나머지를 취하는 식입니다.
10시 00분이면 TimeToMinutes 600 이고 60으로 나누고 나머지 수는 0
10시 05분이면 TimeToMinutes 605 이고 60으로 나누고 나머지 수는 5
10시 10분이면 TimeToMinutes 610 이고 60으로 나누고 나머지 수는 10
10시 15분이면 TimeToMinutes 615 이고 60으로 나누고 나머지 수는 15
10시 20분이면 TimeToMinutes 620 이고 60으로 나누고 나머지 수는 20
10시 25분이면 TimeToMinutes 625 이고 60으로 나누고 나머지 수는 25
10시 30분이면 TimeToMinutes 630 이고 60으로 나누고 나머지 수는 30
10시 35분이면 TimeToMinutes 635 이고 60으로 나누고 나머지 수는 35
10시 40분이면 TimeToMinutes 640 이고 60으로 나누고 나머지 수는 40
10시 45분이면 TimeToMinutes 645 이고 60으로 나누고 나머지 수는 45
10시 50분이면 TimeToMinutes 650 이고 60으로 나누고 나머지 수는 50
10시 55분이면 TimeToMinutes 655 이고 60으로 나누고 나머지 수는 55
11시 00분이면 TimeToMinutes 660 이고 60으로 나누고 나머지 수는 0
11시 05분이면 TimeToMinutes 605 이고 60으로 나누고 나머지 수는 5
11시 10분이면 TimeToMinutes 610 이고 60으로 나누고 나머지 수는 10
11시 15분이면 TimeToMinutes 615 이고 60으로 나누고 나머지 수는 15
~~~~~
즉 시간을 0시 이후의 분수로 구하고 일정 분수로 잘라
현재 나머지 분수가 얼마나 진행되었는지를 알려주는 값이 됩니다.
차트에 아래 지표 적용하시고 값변화 확인하시기 바랍니다.
var : TF(0,data1);
TF = data1(TimeToMinutes(stime)%60);
plot1(TF);
즐거운 하루되세요
> 라면의비밀 님이 쓴 글입니다.
> 제목 : 한시간에 두번만 진입을 위한 수식
> 안녕하세요,
현재 data1로 5분봉을, data2로 60분봉을 활요하는 시스템을 사용 중에 있습니다 (해외선물)
질문1) "B1"이라는 매수진입 수식에 대하여 60봉내에서 두번만 진입주문을 발생시키고 싶다면 어떻게 작성하면 될까요? (청산이 동일 60분 봉에서 두번 이루어진다면, 다음 60분 봉까지 추가진입 금지)
질문2) Data2의 open 값을 가지고 오면 봉이 완성된 이전 봉의 값을 가지고 옵니다. 만약 60분봉의 첫5분봉의 open을 60분봉 open으로 표시하고자하면 어떻게 해야할까요? (시스템이 아니라 지표로 부탁드립니다.)
질문3) 지난번에 60분봉을 구성하는 첫 5분봉의 종가에 신호가 발생하는 것과 관련하여 아래와 같은 답변을 주셨는데, 여기서 TF = data1(TimeToMinutes(stime)%60); 이 어떤 의미 인것인가요? %60이라는것을 함수로 활용한 것을 처음봐서 글로 설명해주시면 감사하겠습니다.
var : TF(0,data1);
TF = data1(TimeToMinutes(stime)%60);
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < tF[1]) Then{
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 then
ExitShort("sx");
}