커뮤니티
로직 부탁합니다.
2015-11-02 17:45:39
180
글번호 91931
안녕하세요..
수고가 많으십니다..
원하는 로직을 부탁드립니다.
1. 기본적인 로직
20일선을 Crossup한 선물의 종가를 Array에 직전부터 100개를 담고요.
그 Array를 기준으로 거래를 하는데
현재 선물이 Array값의 하나를 Crossup하면 매수하고 바로 위의 Array값에서 청산을 합니다.
2. 선택적인 로직
100개의 Array값중에서 매수가의 바로위의 값이 0.5P 사이에 여러개 있으면
예를들면) 매수가는 240.05이고 Array의 값이 240.10, 240.15, 240.20, 240.25, 240.30, 240.70...... 이렇게 있다면
청산은 매수가 240.05의 바로 위(240.10)이 아닌 240.05의 0.5P사이의 값(240.10, 240.15, 240.20, 240.25, 240.30)의 평균값에 청산을 합니다.
- Array에 저장할때 현재가에서 위아래로 0.5P사이에 있는 Array값은 평균값으로 담고 싶네요..
감사합니다..
답변 1
예스스탁 예스스탁 답변
2015-11-03 11:44:53
안녕하세요
예스스탁입니다.
해당식 작성해 보는데 너무 많은 시간이 요구되어
답변을 드리기 어렵습니다.
아내 내용 참고하셔서 수정보완해 사용하시기 바랍니다.
1.
var : mav(0),cnt(0),cnt1(0),cnt2(0),tempmax(0),tempIndex(0);
var : ExitP(0),entrynth(0),sum(0),count(0);
Array : VV[100](0),Value[100](0),NTHVALUE[100](0);
mav = ma(C,20);
if crossup(c,mav) Then{
VV[0] = C;
for cnt = 1 to 99{
VV[cnt] = VV[cnt-1][1];
}
}
if VV[99] > 0 then{
for cnt = 0 to 99
value[cnt] = VV[cnt];
For cnt1 = 99 downto 0
{
tempmax = -99999999;
For cnt2 = 0 to 99
{
if ( value[cnt2] > tempmax ) then
{
tempmax = value[cnt2];
tempIndex = cnt2;
}
}
NTHVALUE[cnt1] = tempmax;
value[tempIndex] = -99999999;
}
Condition1 = false;
for cnt = 0 to 99{
if C > NTHVALUE[cnt] and C[1] <= NTHVALUE[cnt][1] Then{
Condition1 = true;
entrynth = cnt;
}
}
if MarketPosition == 0 and Condition1 == true Then{
buy("b");
IF entrynth < 99 Then
ExitP = NTHVALUE[entrynth+1];
IF entrynth == 99 Then
ExitP = NTHVALUE[entrynth];
}
if MarketPosition == 1 and Crossup(C,ExitP) Then
exitlong("bx");
}
2.
var : mav(0),cnt(0),cnt1(0),cnt2(0),tempmax(0),tempIndex(0);
var : ExitP(0),entrynth(0),sum(0),count(0);
Array : VV[100](0),Value[100](0),NTHVALUE[100](0);
mav = ma(C,20);
if crossup(c,mav) Then{
VV[0] = C;
for cnt = 1 to 99{
VV[cnt] = VV[cnt-1][1];
}
}
if VV[99] > 0 then{
for cnt = 0 to 99
value[cnt] = VV[cnt];
For cnt1 = 99 downto 0
{
tempmax = -99999999;
For cnt2 = 0 to 99
{
if ( value[cnt2] > tempmax ) then
{
tempmax = value[cnt2];
tempIndex = cnt2;
}
}
NTHVALUE[cnt1] = tempmax;
value[tempIndex] = -99999999;
}
Condition1 = false;
for cnt = 0 to 99{
if C > NTHVALUE[cnt] and C[1] <= NTHVALUE[cnt][1] Then{
Condition1 = true;
entrynth = cnt;
}
}
if MarketPosition == 0 and Condition1 == true Then{
buy("b");
sum = 0;
count = 0;
for cnt = entrynth to 99{
if NTHVALUE[cnt] > NTHVALUE[entrynth] and NTHVALUE[cnt] <= NTHVALUE[entrynth]+0.5 Then{
sum = sum+NTHVALUE[cnt];
count = count+1;
}
}
ExitP = sum/count;
IF ExitP == 0 and entrynth < 99 Then
ExitP = NTHVALUE[entrynth+1];
IF ExitP == 0 and entrynth == 99 Then
ExitP = NTHVALUE[entrynth];
}
if MarketPosition == 1 and Crossup(C,ExitP) Then
exitlong("bx");
}
즐거운 하루되세요
> 스톡짱 님이 쓴 글입니다.
> 제목 : 로직 부탁합니다.
> 안녕하세요..
수고가 많으십니다..
원하는 로직을 부탁드립니다.
1. 기본적인 로직
20일선을 Crossup한 선물의 종가를 Array에 직전부터 100개를 담고요.
그 Array를 기준으로 거래를 하는데
현재 선물이 Array값의 하나를 Crossup하면 매수하고 바로 위의 Array값에서 청산을 합니다.
2. 선택적인 로직
100개의 Array값중에서 매수가의 바로위의 값이 0.5P 사이에 여러개 있으면
예를들면) 매수가는 240.05이고 Array의 값이 240.10, 240.15, 240.20, 240.25, 240.30, 240.70...... 이렇게 있다면
청산은 매수가 240.05의 바로 위(240.10)이 아닌 240.05의 0.5P사이의 값(240.10, 240.15, 240.20, 240.25, 240.30)의 평균값에 청산을 합니다.
- Array에 저장할때 현재가에서 위아래로 0.5P사이에 있는 Array값은 평균값으로 담고 싶네요..
감사합니다..