커뮤니티
시스템식 부탁드립니다
2013-04-06 20:34:22
250
글번호 61754
일봉을 기준으로 기본금액을 1000만원으로 설정해서 주식을 일단 매수하고, 봉이 진행됨에 따라, 매 봉마다 계산해서 수익금액만큼 매도하고, 손실금액만큼 매수하여, 항상 주식의 재고평잔이 1000만원을 유지하는 로직을 아래와 같이 만들었는데, 첨부한 그림과 같이 지속적인 매수 매도가 발생하지 않는데 무엇이 잘못되었는지 찾기가 어렵습니다.
Var :
//=========================================================
기본금액(10000000), //1000만원
기본매수량(0),
손실매수량(0),
수익매도량(0),
현재금액(0),
수익금(0),
손실금(0);
//변수계산
//===========================================================
현재금액 = (CurrentContracts * C);
수익금 = (현재금액 - 기본금액);
손실금 = (기본금액 - 현재금액);
기본매수량 = Int(기본금액 / C);
손실매수량 = Int(손실금 / C);
수익매도량 = Int(수익금 / C);
//==========================================================
If 수익금 > 0
Then
ExitLong("매도", AtMarket, DEF, "", 수익매도량, 1);
Else
Buy("매수", AtMarket, DEF, 손실매수량);
무엇이 잘못되었는지 부탁드리겠습니다.
- 1. 2013-04-06 오후 8-29-50.jpg (0.23 MB)
답변 1
예스스탁 예스스탁 답변
2013-04-08 13:26:10
안녕하세요
예스스탁입니다.
청산함수는 진입당 한번만 발생할 수 있습니다.
그러므로 청산함수가 하나일 경우
3회 진입후 가격이 5번 떨어지게 되면
5번모두 발생하지 않고 최초 3번만 발생합니다.
아래와 같이 모든 경우를 커버할수 있도록
케이스별로 청산함수를 여러개 사용해 주셔야 합니다.
아래식은 첫진입이후 청산에 순번을 지정해서 작성해준 식입니다.
현재는 30번까지 되어 있습니다. 필요한 만큼 추가하셔서 작성해 가셔야 합니다.
if MarketPosition == 1 Then{
if CurrentContracts < CurrentContracts[1] Then
var1 = var1+1;
If 수익금 > 0 Then {
if var1 == 0 Then
ExitLong("매도0", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 1 Then
ExitLong("매도1", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 2 Then
ExitLong("매도2", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 3 Then
ExitLong("매도3", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 4 Then
ExitLong("매도4", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 5 Then
ExitLong("매도5", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 6 Then
ExitLong("매도6", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 7 Then
ExitLong("매도7", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 8 Then
ExitLong("매도8", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 9 Then
ExitLong("매도9", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 10 Then
ExitLong("매도10", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 11 Then
ExitLong("매도11", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 12 Then
ExitLong("매도12", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 13 Then
ExitLong("매도13", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 14 Then
ExitLong("매도14", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 15 Then
ExitLong("매도15", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 16 Then
ExitLong("매도16", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 17 Then
ExitLong("매도17", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 18 Then
ExitLong("매도18", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 19 Then
ExitLong("매도19", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 20 Then
ExitLong("매도20", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 21 Then
ExitLong("매도21", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 22 Then
ExitLong("매도22", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 23 Then
ExitLong("매도23", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 24 Then
ExitLong("매도24", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 25 Then
ExitLong("매도25", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 26 Then
ExitLong("매도26", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 27 Then
ExitLong("매도27", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 28 Then
ExitLong("매도28", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 29 Then
ExitLong("매도29", AtMarket, DEF, "", 수익매도량, 1);
If var1 == 30 Then
ExitLong("매도30", AtMarket, DEF, "", 수익매도량, 1);
}
}
즐거운 하루되세요
> 최선 님이 쓴 글입니다.
> 제목 : 시스템식 부탁드립니다
> 일봉을 기준으로 기본금액을 1000만원으로 설정해서 주식을 일단 매수하고, 봉이 진행됨에 따라, 매 봉마다 계산해서 수익금액만큼 매도하고, 손실금액만큼 매수하여, 항상 주식의 재고평잔이 1000만원을 유지하는 로직을 아래와 같이 만들었는데, 첨부한 그림과 같이 지속적인 매수 매도가 발생하지 않는데 무엇이 잘못되었는지 찾기가 어렵습니다.
Var :
//=========================================================
기본금액(10000000), //1000만원
기본매수량(0),
손실매수량(0),
수익매도량(0),
현재금액(0),
수익금(0),
손실금(0);
//변수계산
//===========================================================
현재금액 = (CurrentContracts * C);
수익금 = (현재금액 - 기본금액);
손실금 = (기본금액 - 현재금액);
기본매수량 = Int(기본금액 / C);
손실매수량 = Int(손실금 / C);
수익매도량 = Int(수익금 / C);
//==========================================================
If 수익금 > 0
Then
ExitLong("매도", AtMarket, DEF, "", 수익매도량, 1);
Else
Buy("매수", AtMarket, DEF, 손실매수량);
무엇이 잘못되었는지 부탁드리겠습니다.
다음글
이전글