안녕하세요. 항상 감사합니다.
지난주에 수식 요청드렸었는데 기대했던대로 작동이 안되어 다시한번 요청드립니다.
제가 설명을 잘못 드린 것 같아 보다 자세히 설명드리겠습니다.
line1과 line2의 교차 매매인데 교차시에 바로진입을 하는 것이 아니고 위든 아래든 추세가 뚫릴 때 매매하는 것이 핵심입니다.
종목은 나스닥. 매매시간은 21:30~05:50 입니다.
line1 = 단기 이평
line2 = 장기 이평
input : 익절틱수(100),손절틱수(50), 진입틱수(50);
input : tr_onoff(1),최소수익(50),감소수익(50);#트레일링스탑 사용1, 미사용 0
var : line1(0),line2(0);
var : entry1(False) entry2(False; //두 라인이 crossup 또는 crossdown 될 때 entry1 true, 청산시 false. 진입중이면 entry2 true, 청산시 false
if entry1 == False and (CrossUp(line1, line2) or CrossDown(line1, line2)) Then
{ var1 = line1;
entry1= True;
} // 두 라인이 교차되면 crossup 이든 crossdown이든 일단 진입대기 상태가 된다.
if entry1 == True and entry2 == False and 현재가 > var1 + 진입틱수 Then
{
Buy("b");
entry2 = True;
}
if entry1 == True and entry2 == False and 현재가 < var1 - 진입틱수 Then
{
Sell("s");
entry2 = True;
// 진입대기 상태에서 두선의 교차가보다 진입틱수가 높으면 매수진입, 낮으면 매도 진입
// 이 상태에서는 아직 entry1을 False 만들면 안 될 듯. entry1이 False면 첫 번째 조건인 entry1 == False에 다시 진입하기 때문.
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
if tr_onoff == 1 Then
SetStopTrailing(PriceScale*감소수익,PriceScale*최소수익,PointStop);
//예전에 만들어주신건데 이대로 하면 되겠죠?
청산되면 entry1 == False, entry2 == False
이런 수식이면 제가 원하는대로 될 것 같기는 한데. 일단 만들어주시면 확인해봐야겠네요.
가동시간도 확인부탁드립니다. 변수로 조절할 수 있게 만들어 주시면 더 좋을 것 같습니다.
잘부탁드리겠습니다.
답변 1
예스스탁
예스스탁 답변
2023-04-24 13:47:31
안녕하세요
예스스탁입니다.
input : 익절틱수(100),손절틱수(50), 진입틱수(50);
input : tr_onoff(1),최소수익(50),감소수익(50);
var : line1(0),line2(0);
var : entry1(False),entry2(False);
input : StartTime(213000),EndTime(055000);
var : Tcond(false);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
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;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
line1 = (H+L)/2;
line2 = ma(C,60);
if entry1 == False and (CrossUp(line1, line2) or CrossDown(line1, line2)) Then
{
var1 = line1;
entry1= True;
}
if entry1 == True and entry2 == False and c> var1 + 진입틱수*PriceScale and Tcond == true Then
{
Buy("b");
entry2 = True;
}
if entry1 == True and entry2 == False and c < var1 - 진입틱수*PriceScale and Tcond == true Then
{
Sell("s");
entry2 = True;
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
if tr_onoff == 1 Then
SetStopTrailing(PriceScale*감소수익,PriceScale*최소수익,PointStop);
if TotalTrades > TotalTrades[1] Then
{
entry1 == False;
entry2 == False;
}
즐거운 하루되세요
> 강장군 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다.
> 안녕하세요. 항상 감사합니다.
지난주에 수식 요청드렸었는데 기대했던대로 작동이 안되어 다시한번 요청드립니다.
제가 설명을 잘못 드린 것 같아 보다 자세히 설명드리겠습니다.
line1과 line2의 교차 매매인데 교차시에 바로진입을 하는 것이 아니고 위든 아래든 추세가 뚫릴 때 매매하는 것이 핵심입니다.
종목은 나스닥. 매매시간은 21:30~05:50 입니다.
line1 = 단기 이평
line2 = 장기 이평
input : 익절틱수(100),손절틱수(50), 진입틱수(50);
input : tr_onoff(1),최소수익(50),감소수익(50);#트레일링스탑 사용1, 미사용 0
var : line1(0),line2(0);
var : entry1(False) entry2(False; //두 라인이 crossup 또는 crossdown 될 때 entry1 true, 청산시 false. 진입중이면 entry2 true, 청산시 false
if entry1 == False and (CrossUp(line1, line2) or CrossDown(line1, line2)) Then
{ var1 = line1;
entry1= True;
} // 두 라인이 교차되면 crossup 이든 crossdown이든 일단 진입대기 상태가 된다.
if entry1 == True and entry2 == False and 현재가 > var1 + 진입틱수 Then
{
Buy("b");
entry2 = True;
}
if entry1 == True and entry2 == False and 현재가 < var1 - 진입틱수 Then
{
Sell("s");
entry2 = True;
// 진입대기 상태에서 두선의 교차가보다 진입틱수가 높으면 매수진입, 낮으면 매도 진입
// 이 상태에서는 아직 entry1을 False 만들면 안 될 듯. entry1이 False면 첫 번째 조건인 entry1 == False에 다시 진입하기 때문.
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
if tr_onoff == 1 Then
SetStopTrailing(PriceScale*감소수익,PriceScale*최소수익,PointStop);
//예전에 만들어주신건데 이대로 하면 되겠죠?
청산되면 entry1 == False, entry2 == False
이런 수식이면 제가 원하는대로 될 것 같기는 한데. 일단 만들어주시면 확인해봐야겠네요.
가동시간도 확인부탁드립니다. 변수로 조절할 수 있게 만들어 주시면 더 좋을 것 같습니다.
잘부탁드리겠습니다.