예스스탁
예스스탁 답변
2019-10-24 15:40:52
안녕하세요
예스스탁입니다.
Input : CurDate(20190228);
이 날짜를 지정하는 변수이고
If CurDate == sDate Then 조건으로 진입청산식이 묶여있습니다.
변수 삭제하시고 위 조건문을 없애시면 됩니다.
이전식과 아래식 비교해 보시기 바랍니다.
input : 손절(0.9),익절(1),최소수익(1),수익감소(1);
input : 최저가대비1(2), 최저가대비2(3),최저가대비3(4),최저가대비4(5),최저가대비5(6);
input : 최고가대비1(2), 최고가대비2(3),최고가대비3(4),최고가대비4(5),최고가대비5(6);
Var : Timeoff(0);
value1 = DayHigh(0);
value2 = DayLow(0);
If MarketPosition == 0 Then {
If IsExitName("stoploss", 1) == True Then {
If IsEntryName("B1", 1) == False Then {
If CrossUp(C, value2+1) Then {
If C <= value2+1.6 Then {
Buy("B11",OnClose,C);
}
}
}
If IsEntryName("B2", 1) == False Then {
If CrossUp(C, value2+2) Then {
If C <= value2+2.6 Then {
Buy("B22",OnClose,C);
}
}
}
If IsEntryName("B3", 1) == False Then {
If CrossUp(C, value2+3) Then {
If C <= value2+3.6 Then {
Buy("B33",OnClose,C);
}
}
}
If IsEntryName("B4", 1) == False Then {
If CrossUp(C, value2+4) Then {
If C <= value2+4.6 Then {
Buy("B44",OnClose,C);
}
}
}
If IsEntryName("B5", 1) == False Then {
If CrossUp(C, value2+5) Then {
If C <= value2+5.6 Then {
Buy("B55",OnClose,C);
}
}
}
//----------------------------------------------------
If IsEntryName("S1", 1) == False Then {
If CrossDown(C, value1-1) Then {
If C >= value2-1.6 Then {
Sell("S11",OnClose,C);
}
}
}
If IsEntryName("S2", 1) == False Then {
If CrossDown(C, value1-2) Then {
If C >= value2-2.6 Then {
Sell("S22",OnClose,C);
}
}
}
If IsEntryName("S3", 1) == False Then {
If CrossDown(C, value1-3) Then {
If C >= value2-3.6 Then {
Sell("S33",OnClose,C);
}
}
}
If IsEntryName("S4", 1) == False Then {
If CrossDown(C, value1-4) Then {
If C >= value2-4.6 Then {
Sell("S44",OnClose,C);
}
}
}
If IsEntryName("S5", 1) == False Then {
If CrossDown(C, value1-5) Then {
If C >= value2-5.6 Then {
Sell("S55",OnClose,C);
}
}
}
} Else {
If CrossUp(C, value2+1) Then {
If C <= value2+1.6 Then {
Buy("B1",OnClose,C);
}
}
If CrossUp(C, value2+2) Then {
If C <= value2+2.6 Then {
Buy("B2",OnClose,C);
}
}
If CrossUp(C, value2+3) Then {
If C <= value2+3.6 Then {
Buy("B3",OnClose,C);
}
}
If CrossUp(C, value2+4) Then {
If C <= value2+4.6 Then {
Buy("B4",OnClose,C);
}
}
If CrossUp(C, value2+5) Then {
If C <= value2+5.6 Then {
Buy("B5",OnClose,C);
}
}
//----------------------------------------------------
If CrossDown(C, value1-1) Then {
If C >= value2-1.6 Then {
Sell("S1",OnClose,C);
}
}
If CrossDown(C, value1-2) Then {
If C >= value2-2.6 Then {
Sell("S2",OnClose,C);
}
}
If CrossDown(C, value1-3) Then {
If C >= value2-3.6 Then {
Sell("S3",OnClose,C);
}
}
If CrossDown(C, value1-4) Then {
If C >= value2-4.6 Then {
Sell("S4",OnClose,C);
}
}
If CrossDown(C, value1-5) Then {
If C >= value2-5.6 Then {
Sell("S5",OnClose,C);
}
}
}
} Else {
If IsEntryName("B1") == True or IsEntryName("B11") == True Then {
ExitLong("EB1", AtLimit, value2 + 최저가대비1);
}
If IsEntryName("B2") == True or IsEntryName("B22") == True Then {
ExitLong("EB2", AtLimit, value2 + 최저가대비2);
}
If IsEntryName("B3") == True or IsEntryName("B33") == True Then {
ExitLong("EB3", AtLimit, value2 + 최저가대비3);
}
If IsEntryName("B4") == True or IsEntryName("B44") == True Then {
ExitLong("EB4", AtLimit, value2 + 최저가대비4);
}
If IsEntryName("B5") == True or IsEntryName("B55") == True Then {
ExitLong("EB5", AtLimit, value2 + 최저가대비5);
}
//----------------------------------------------------
If IsEntryName("S1") == True or IsEntryName("S11") == True Then {
ExitShort("ES1", AtLimit, value1 - 최고가대비1);
}
If IsEntryName("S2") == True or IsEntryName("S22") == True Then {
ExitShort("ES2", AtLimit, value1 - 최고가대비2);
}
If IsEntryName("S3") == True or IsEntryName("S33") == True Then {
ExitShort("ES3", AtLimit, value1 - 최고가대비3);
}
If IsEntryName("S4") == True or IsEntryName("S44") == True Then {
ExitShort("ES4", AtLimit, value1 - 최고가대비4);
}
If IsEntryName("S5") == True or IsEntryName("S55") == True Then {
ExitShort("ES5", AtLimit, value1 - 최고가대비5);
}
}
//SetStopProfittarget(익절,PointStop);
//SetStopTrailing(수익감소, 최소수익, PointStop);
SetStopLoss(손절,PointStop);
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 수정부탁드립니다.
> 안녕하세요? 아래의 수식에서 고치고싶은게 있습니다.
1)날짜
날짜를 매일 입력하도록 되어있는데, 그렇게안해도 자동으로 매일 나오도록 하고싶습니다.
2)청산 외부변수
익절,손절,트레일링스탑을 고치려면 수식편집창에서 해야하는데, 외부변수로 빼고싶습니다.
3)시간
끝나는시간이 150000 으로 되어있는것 같은데, 빼버리고 계속 돌아가게 하고싶습니다.
4)날짜가 이런 형식의 시스템이 더있는데요, 날짜를 빼버리고 매일 입력하도록 하려면 특정수식을 삭제만 해주면 되는건가요? 어디를 없애고 무엇을 추가해야하는지 알려주시면 감사하겠습니다. 다른시스템에도 적용하려구요.
부탁드립니다.
감사합니다.
Var : Timeoff(0);
Input : CurDate(20190228);
value1 = DayHigh(0);
value2 = DayLow(0);
//If CurrentDate == sDate Then {
If CurDate == sDate Then {
If sTime >= 150000 Then {
ExitShort();
ExitLong();
Timeoff = 1;
} Else If Timeoff == 0 Then {
If MarketPosition == 0 Then {
If IsExitName("stoploss", 1) == True Then {
If IsEntryName("B1", 1) == False Then {
If CrossUp(C, value2+1) Then {
If C <= value2+1.6 Then {
Buy("B11",OnClose,C);
}
}
}
If IsEntryName("B2", 1) == False Then {
If CrossUp(C, value2+2) Then {
If C <= value2+2.6 Then {
Buy("B22",OnClose,C);
}
}
}
If IsEntryName("B3", 1) == False Then {
If CrossUp(C, value2+3) Then {
If C <= value2+3.6 Then {
Buy("B33",OnClose,C);
}
}
}
If IsEntryName("B4", 1) == False Then {
If CrossUp(C, value2+4) Then {
If C <= value2+4.6 Then {
Buy("B44",OnClose,C);
}
}
}
If IsEntryName("B5", 1) == False Then {
If CrossUp(C, value2+5) Then {
If C <= value2+5.6 Then {
Buy("B55",OnClose,C);
}
}
}
//----------------------------------------------------
If IsEntryName("S1", 1) == False Then {
If CrossDown(C, value1-1) Then {
If C >= value2-1.6 Then {
Sell("S11",OnClose,C);
}
}
}
If IsEntryName("S2", 1) == False Then {
If CrossDown(C, value1-2) Then {
If C >= value2-2.6 Then {
Sell("S22",OnClose,C);
}
}
}
If IsEntryName("S3", 1) == False Then {
If CrossDown(C, value1-3) Then {
If C >= value2-3.6 Then {
Sell("S33",OnClose,C);
}
}
}
If IsEntryName("S4", 1) == False Then {
If CrossDown(C, value1-4) Then {
If C >= value2-4.6 Then {
Sell("S44",OnClose,C);
}
}
}
If IsEntryName("S5", 1) == False Then {
If CrossDown(C, value1-5) Then {
If C >= value2-5.6 Then {
Sell("S55",OnClose,C);
}
}
}
} Else {
If CrossUp(C, value2+1) Then {
If C <= value2+1.6 Then {
Buy("B1",OnClose,C);
}
}
If CrossUp(C, value2+2) Then {
If C <= value2+2.6 Then {
Buy("B2",OnClose,C);
}
}
If CrossUp(C, value2+3) Then {
If C <= value2+3.6 Then {
Buy("B3",OnClose,C);
}
}
If CrossUp(C, value2+4) Then {
If C <= value2+4.6 Then {
Buy("B4",OnClose,C);
}
}
If CrossUp(C, value2+5) Then {
If C <= value2+5.6 Then {
Buy("B5",OnClose,C);
}
}
//----------------------------------------------------
If CrossDown(C, value1-1) Then {
If C >= value2-1.6 Then {
Sell("S1",OnClose,C);
}
}
If CrossDown(C, value1-2) Then {
If C >= value2-2.6 Then {
Sell("S2",OnClose,C);
}
}
If CrossDown(C, value1-3) Then {
If C >= value2-3.6 Then {
Sell("S3",OnClose,C);
}
}
If CrossDown(C, value1-4) Then {
If C >= value2-4.6 Then {
Sell("S4",OnClose,C);
}
}
If CrossDown(C, value1-5) Then {
If C >= value2-5.6 Then {
Sell("S5",OnClose,C);
}
}
}
} Else {
If IsEntryName("B1") == True or IsEntryName("B11") == True Then {
ExitLong("EB1", AtLimit, value2 + 2);
}
If IsEntryName("B2") == True or IsEntryName("B22") == True Then {
ExitLong("EB2", AtLimit, value2 + 3);
}
If IsEntryName("B3") == True or IsEntryName("B33") == True Then {
ExitLong("EB3", AtLimit, value2 + 4);
}
If IsEntryName("B4") == True or IsEntryName("B44") == True Then {
ExitLong("EB4", AtLimit, value2 + 5);
}
If IsEntryName("B5") == True or IsEntryName("B55") == True Then {
ExitLong("EB5", AtLimit, value2 + 6);
}
//----------------------------------------------------
If IsEntryName("S1") == True or IsEntryName("S11") == True Then {
ExitShort("ES1", AtLimit, value1 - 2);
}
If IsEntryName("S2") == True or IsEntryName("S22") == True Then {
ExitShort("ES2", AtLimit, value1 - 3);
}
If IsEntryName("S3") == True or IsEntryName("S33") == True Then {
ExitShort("ES3", AtLimit, value1 - 4);
}
If IsEntryName("S4") == True or IsEntryName("S44") == True Then {
ExitShort("ES4", AtLimit, value1 - 5);
}
If IsEntryName("S5") == True or IsEntryName("S55") == True Then {
ExitShort("ES5", AtLimit, value1 - 6);
}
}
}
//SetStopProfittarget(1,PointStop);
//SetStopTrailing(1, 1, PointStop);
SetStopLoss(0.9,PointStop);
}