예스스탁
예스스탁 답변
2020-11-23 12:35:51
안녕하세요
예스스탁입니다.
1
var : Bcnt(0),Scnt(0);
if Bdate != Bdate[1] Then
{
Bcnt = 0;
Scnt = 0;
}
if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then
Bcnt = Bcnt+1;
if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then
Scnt = Scnt+1;
// 매수식
if MarketPosition==0 && sTime>093000 && sTime<140000 and Bcnt < 1
Then
{
if C>DayOpen*1.01 && C>O Then Buy("매수진입1",AtMarket,def,1);
if C>DayOpen*1.01 && C>C[1] && C>C[2] Then Buy("매수진입2",AtMarket,def,1);
}
// 매수청산식
if MarketPosition==1 Then SetStopEndofday(150000);
if MarketPosition==1 && C>EntryPrice*1.01 Then ExitLong("매수익절",AtMarket);
if MarketPosition==1 && C<EntryPrice*0.99 Then ExitLong("매수손절",AtMarket);
// 매도식
if MarketPosition==0 && sTime>093000 && sTime<140000 and Scnt < 1
Then
{
if C<DayOpen*0.99 && C<O Then Sell("매도진입1",AtMarket,def,1);
if C<DayOpen*0.99 && C<C[1] && C<C[2] Then Sell("매도진입2",AtMarket,def,1);
}
// 매도청산식
if MarketPosition==-1 Then SetStopEndofday(150000);
if MarketPosition==-1 && C<EntryPrice*0.99 Then ExitShort("매도익절",AtMarket);
if MarketPosition==-1 && C>EntryPrice*1.01 Then ExitShort("매도손절",AtMarket);
2
var : Bcnt(0),Scnt(0);
if Bdate != Bdate[1] Then
{
Bcnt = 0;
Scnt = 0;
}
if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then
Bcnt = Bcnt+1;
if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then
Scnt = Scnt+1;
// 매수식
if MarketPosition==0 && sTime>093000 && sTime<140000 and
(Bcnt < 1 or (Bcnt == 1 and MarketPosition(1) == 1 and IsExitName("매수손절",1) == true))
Then
{
if C>DayOpen*1.01 && C>O Then Buy("매수진입1",AtMarket,def,1);
if C>DayOpen*1.01 && C>C[1] && C>C[2] Then Buy("매수진입2",AtMarket,def,1);
}
// 매수청산식
if MarketPosition==1 Then SetStopEndofday(150000);
if MarketPosition==1 && C>EntryPrice*1.01 Then ExitLong("매수익절",AtMarket);
if MarketPosition==1 && C<EntryPrice*0.99 Then ExitLong("매수손절",AtMarket);
// 매도식
if MarketPosition==0 && sTime>093000 && sTime<140000 and
(Scnt < 1 or (Scnt == 1 and MarketPosition(1) == -1 and IsExitName("매도손절",1) == true))
Then
{
if C<DayOpen*0.99 && C<O Then Sell("매도진입1",AtMarket,def,1);
if C<DayOpen*0.99 && C<C[1] && C<C[2] Then Sell("매도진입2",AtMarket,def,1);
}
// 매도청산식
if MarketPosition==-1 Then SetStopEndofday(150000);
if MarketPosition==-1 && C<EntryPrice*0.99 Then ExitShort("매도익절",AtMarket);
if MarketPosition==-1 && C>EntryPrice*1.01 Then ExitShort("매도손절",AtMarket);
3
var : LossCnt(0),ProfitCnt(0);
if Bdate != Bdate[1] Then
{
ProfitCnt = 0;
LossCnt = 0;
}
if TotalTrades > TotalTrades[1] Then
{
if (IsExitName("매수익절",1) == true or IsExitName("매도익절",1) == true) Then
ProfitCnt = ProfitCnt+1;
if (IsExitName("매수손절",1) == true or IsExitName("매도손절",1) == true) Then
LossCnt = LossCnt+1;
}
// 매수식
if MarketPosition==0 && sTime>093000 && sTime<140000 and
ProfitCnt < 1 and LossCnt < 2
Then
{
if C>DayOpen*1.01 && C>O Then Buy("매수진입1",AtMarket,def,1);
if C>DayOpen*1.01 && C>C[1] && C>C[2] Then Buy("매수진입2",AtMarket,def,1);
}
// 매수청산식
if MarketPosition==1 Then SetStopEndofday(150000);
if MarketPosition==1 && C>EntryPrice*1.01 Then ExitLong("매수익절",AtMarket);
if MarketPosition==1 && C<EntryPrice*0.99 Then ExitLong("매수손절",AtMarket);
// 매도식
if MarketPosition==0 && sTime>093000 && sTime<140000 and
ProfitCnt < 1 and LossCnt < 2
Then
{
if C<DayOpen*0.99 && C<O Then Sell("매도진입1",AtMarket,def,1);
if C<DayOpen*0.99 && C<C[1] && C<C[2] Then Sell("매도진입2",AtMarket,def,1);
}
// 매도청산식
if MarketPosition==-1 Then SetStopEndofday(150000);
if MarketPosition==-1 && C<EntryPrice*0.99 Then ExitShort("매도익절",AtMarket);
if MarketPosition==-1 && C>EntryPrice*1.01 Then ExitShort("매도손절",AtMarket);
4
var : LossCnt(0),ProfitCnt(0);
if Bdate != Bdate[1] Then
{
ProfitCnt = 0;
LossCnt = 0;
}
if TotalTrades > TotalTrades[1] Then
{
if (IsExitName("매수익절",1) == true or IsExitName("매도익절",1) == true) Then
ProfitCnt = ProfitCnt+1;
if (IsExitName("매수손절",1) == true or IsExitName("매도손절",1) == true) Then
LossCnt = LossCnt+1;
}
// 매수식
if MarketPosition==0 && sTime>093000 && sTime<140000 and
ProfitCnt < 2 and LossCnt < 1
Then
{
if C>DayOpen*1.01 && C>O Then Buy("매수진입1",AtMarket,def,1);
if C>DayOpen*1.01 && C>C[1] && C>C[2] Then Buy("매수진입2",AtMarket,def,1);
}
// 매수청산식
if MarketPosition==1 Then SetStopEndofday(150000);
if MarketPosition==1 && C>EntryPrice*1.01 Then ExitLong("매수익절",AtMarket);
if MarketPosition==1 && C<EntryPrice*0.99 Then ExitLong("매수손절",AtMarket);
// 매도식
if MarketPosition==0 && sTime>093000 && sTime<140000 and
ProfitCnt < 2 and LossCnt < 1
Then
{
if C<DayOpen*0.99 && C<O Then Sell("매도진입1",AtMarket,def,1);
if C<DayOpen*0.99 && C<C[1] && C<C[2] Then Sell("매도진입2",AtMarket,def,1);
}
// 매도청산식
if MarketPosition==-1 Then SetStopEndofday(150000);
if MarketPosition==-1 && C<EntryPrice*0.99 Then ExitShort("매도익절",AtMarket);
if MarketPosition==-1 && C>EntryPrice*1.01 Then ExitShort("매도손절",AtMarket);
즐거운 하루되세요
> 일목초인 님이 쓴 글입니다.
> 제목 : 진입 제한 예제 부탁드립니다.
> 다음과 같이 여러 개의 시스템이 합쳐져 있는 시스템에서 진입 제한 예제 부탁드립니다.
테스트를 위한 시스템 예제 기본 구성
// 매수식
if MarketPosition==0 && sTime>093000 && sTime<140000
Then
{
if C>DayOpen*1.01 && C>O Then Buy("매수진입1",AtMarket,def,1);
if C>DayOpen*1.01 && C>C[1] && C>C[2] Then Buy("매수진입2",AtMarket,def,1);
}
// 매수청산식
if MarketPosition==1 Then SetStopEndofday(150000);
if MarketPosition==1 && C>EntryPrice*1.01 Then ExitLong("매수익절",AtMarket);
if MarketPosition==1 && C<EntryPrice*0.99 Then ExitLong("매수손절",AtMarket);
// 매도식
if MarketPosition==0 && sTime>093000 && sTime<140000
Then
{
if C<DayOpen*0.99 && C<O Then Sell("매도진입1",AtMarket,def,1);
if C<DayOpen*0.99 && C<C[1] && C<C[2] Then Sell("매도진입2",AtMarket,def,1);
}
// 매도청산식
if MarketPosition==-1 Then SetStopEndofday(150000);
if MarketPosition==-1 && C<EntryPrice*0.99 Then ExitShort("매도익절",AtMarket);
if MarketPosition==-1 && C>EntryPrice*1.01 Then ExitShort("매도손절",AtMarket);
질문1
매수진입, 매도진입 각각 하루에 한번만 진입 허용하는 시스템
질문2
매수진입, 매도진입 각각 따로
매수진입에서 이익 발생시 추가 진입금지하고 손실 발생시 1회 더 추가 진입 허용하고
매도진입에서 이익 발생시 추가 진입금지하고 손실 발생시 1회 더 추가 진입 허용하는 시스템
질문3
매수진입 매도진입 관계없이 전체 시스템이 이익이 발생하면 진입금지하고 손실 발생시에만 1회 더 추가 진입 허용하는 시스템
질문4
매수진입 매도진입 관계없이 전체 시스템이 손실이 발생하면 진입금지하고 이익 발생시에만 1회 더 추가 진입 허용하는 시스템
항상 감사합니다.