커뮤니티
수식 부탁드립니다
2017-02-24 23:29:08
130
글번호 107221
1. 최초 진입 후 목표이익 달성전까지 최초 진입가가 매수일 경우 최저가, 매도일 경우 최고가
이고,
최초 진입가 및 피라미딩 진입한 진입가가 목표이익을 달성하고 청산되는 경우
매수일 경우 최종 청산가격의 - 4p를 최저가로 인식하고,
매도일 경우 최종 청산가격의 + 4p를 최고가로 인식할 수 있는 식을 부탁드립니다
(목표이익은 진입가 대비 +- 5P, 피라미딩은 +-1p로 가정시)
2. 진입과 청산신호가 동시에 발생할 경우에는 시스템은 향후 추가진입, 청산의 기준을 만들기
위해 진입,청산신호가 발생을 인지만 하고, 실제로는 진입,청산 주문이 나가지 않도록 제한
할 수 있나요?
많은 생각을 하고 질문을 드려야 하는데 짧은 생각 후 질문을 드려 번거롭게 해드려 죄송합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 부탁드립니다
> 안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다. 주석을 붙여드립니다.
var : cnt(0),Bcnt(0),Bxcnt(0),LL(0);
var : Scnt(0),Sxcnt(0),HH(0);
Array : BE[20](0),SE[20](0);
#매수진입 중
if MarketPosition == 1 Then{
//청산 발생 횟수 카운트
if CurrentContracts < CurrentContracts[1] then{
Bxcnt = Bxcnt+1;
}
//진입 발생 횟수 카운트
if CurrentContracts > CurrentContracts[1] Then{
Bcnt = Bcnt+1;
//가장최근 진입가가 1, 그다음최근이 2 순으로 저장
BE[1] = LatestEntryPrice;
for cnt = 2 to 19{
BE[cnt] = BE[cnt-1][1];
}
}
//매수횟수가 청산횟수보다 많을때만 진행
if Bcnt > Bxcnt then{
#초기값은 가장최근 진입가
LL = BE[1];
#최근 진입가부터 과거 진입가를 가져와 비교해 최저가를 구하는데
#진입횟수에서 청산횟수를 차감한 횟수만 과거진입가를 가져와 비교해서 최저가를 구함
#(예를들어 현재 피라미딩5회이면, BE[1]~BE[5]까지 값이 저장되어 있고 BE[5]가 첫 진입가인데
#청산1회면 BE[1],BE[2],BE[3],BE[4]만 가져오고 BE[5]는 빼고 최저가 계산)
#즉 피라미딩 전체 진입가중 청산횟수만큰 과거 진입의 가격은 제외하고 최저가 계산
for cnt = 1 to Bcnt-Bxcnt
{
if BE[cnt] < LL Then
LL = BE[cnt];
}
}
}
Else{#매수포지션이 아니면 모두 0으로 초기화
Bcnt = 0;
Bxcnt = 0;
for cnt = 1 to 20
{
BE[cnt] = 0;
}
}
#매도진입 중
if MarketPosition == -1 Then{
//청산 발생 횟수 카운트
if CurrentContracts < CurrentContracts[1] then{
Sxcnt = Sxcnt+1;
}
//진입 발생 횟수 카운트
if CurrentContracts > CurrentContracts[1] Then{
Scnt = Scnt+1;
//가장최근 진입가가 1, 그다음최근이 2 순으로 저장
SE[1] = LatestEntryPrice;
for cnt = 2 to 19{
SE[cnt] = SE[cnt-1][1];
}
}
//진입횟수가 청산횟수보다 많을때만 진행
if Scnt > Sxcnt then{
#초기값은 가장최근 진입가
HH = SE[1];
#최근 진입가부터 과거 진입가를 가져와 비교해 최고가를 구하는데
#(예를들어 현재 피라미딩5회이면, SE[1]~SE[5]까지 값이 저장되어 있고 SE[5]가 첫 진입가인데
#청산1회면 SE[1],SE[2],SE[3],SE[4]만 가져오고 SE[5]는 빼고 최저가 계산)
#즉 피라미딩 전체 진입가 중 청산횟수만큼 과거 진입의 가격은 제외하고 최고가 계산
for cnt = 1 to Scnt-Sxcnt
{
if SE[cnt] > HH Then
HH = SE[cnt];
}
}
}
Else{#도수포지션이 아니면 모두 0으로 초기화
Scnt = 0;
Sxcnt = 0;
for cnt = 1 to 20
{
SE[cnt] = 0;
}
}
즐거운 하루되세요
> 미송 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다
> 피라미딩 적용시
최초 진입가 256.0
1차 피라미딩 257.0
2차 피라미딩 258.0
3차 피라미딩 259.0
4차 피라미딩 260.0
5차 피라미딩 및 최초 진입가 청산 261.0
6차 피라미딩 및 1차 피라미딩 청산 262.0
7차 피라미딩 및 2차 피라미딩 청산 263.0
. .
. .
. .
일 경우
최초 진입 256.0 이후 최고가가 5차 피라미딩 및 최초진입가 청산지점인 261.0 미만인 가격
이 최고가일 경우, 최초 진입가(256.0)를 최저가로 인식
6차 피라미딩 및 1차 피라미딩 청산이 이루어지는 261.0 이상 262.0 미만인 상태에서 최고가
를 형성할경우 1차 피라미딩 가격(257.0)을 최저가로 인식
7차 피라미딩 및 2차 피라미딩 청산이 이루어지는 262.0 이상 263.0 미만인 상태에서 최고가
를 형성할 경우 2차 피라미딩 가격(258.0)을 최저가로 인식
8차 ~~~, 9차 ~~~, 10차 ~~~ 일 경우도 적용될수 있는 시스템식을 부탁드립니다
반대로 매도의 경우도 적용할 수 있는 시스템식도 부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2017-02-27 10:24:40
안녕하세요
예스스탁입니다.
1.
var : LL(0),HH(0);
if MarketPosition == 1 Then{
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "StopProfitTarget" Then
Condition1 = true;
if Condition1 == false Then
LL = EntryPrice;
if Condition1 == true then
LL = LatestEntryPrice(0)-4;
}
Else
Condition1 = false;
if MarketPosition == -1 Then{
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "StopProfitTarget" Then
Condition2 = true;
if Condition2 == false Then
HH = EntryPrice;
if Condition2 == true then
Hh = LatestEntryPrice(0)+4;
}
Else
Condition2 = false;
2
가능하지 않습니다.
즐거운 하루되세요
> 미송 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다
> 1. 최초 진입 후 목표이익 달성전까지 최초 진입가가 매수일 경우 최저가, 매도일 경우 최고가
이고,
최초 진입가 및 피라미딩 진입한 진입가가 목표이익을 달성하고 청산되는 경우
매수일 경우 최종 청산가격의 - 4p를 최저가로 인식하고,
매도일 경우 최종 청산가격의 + 4p를 최고가로 인식할 수 있는 식을 부탁드립니다
(목표이익은 진입가 대비 +- 5P, 피라미딩은 +-1p로 가정시)
2. 진입과 청산신호가 동시에 발생할 경우에는 시스템은 향후 추가진입, 청산의 기준을 만들기
위해 진입,청산신호가 발생을 인지만 하고, 실제로는 진입,청산 주문이 나가지 않도록 제한
할 수 있나요?
많은 생각을 하고 질문을 드려야 하는데 짧은 생각 후 질문을 드려 번거롭게 해드려 죄송합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 부탁드립니다
> 안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다. 주석을 붙여드립니다.
var : cnt(0),Bcnt(0),Bxcnt(0),LL(0);
var : Scnt(0),Sxcnt(0),HH(0);
Array : BE[20](0),SE[20](0);
#매수진입 중
if MarketPosition == 1 Then{
//청산 발생 횟수 카운트
if CurrentContracts < CurrentContracts[1] then{
Bxcnt = Bxcnt+1;
}
//진입 발생 횟수 카운트
if CurrentContracts > CurrentContracts[1] Then{
Bcnt = Bcnt+1;
//가장최근 진입가가 1, 그다음최근이 2 순으로 저장
BE[1] = LatestEntryPrice;
for cnt = 2 to 19{
BE[cnt] = BE[cnt-1][1];
}
}
//매수횟수가 청산횟수보다 많을때만 진행
if Bcnt > Bxcnt then{
#초기값은 가장최근 진입가
LL = BE[1];
#최근 진입가부터 과거 진입가를 가져와 비교해 최저가를 구하는데
#진입횟수에서 청산횟수를 차감한 횟수만 과거진입가를 가져와 비교해서 최저가를 구함
#(예를들어 현재 피라미딩5회이면, BE[1]~BE[5]까지 값이 저장되어 있고 BE[5]가 첫 진입가인데
#청산1회면 BE[1],BE[2],BE[3],BE[4]만 가져오고 BE[5]는 빼고 최저가 계산)
#즉 피라미딩 전체 진입가중 청산횟수만큰 과거 진입의 가격은 제외하고 최저가 계산
for cnt = 1 to Bcnt-Bxcnt
{
if BE[cnt] < LL Then
LL = BE[cnt];
}
}
}
Else{#매수포지션이 아니면 모두 0으로 초기화
Bcnt = 0;
Bxcnt = 0;
for cnt = 1 to 20
{
BE[cnt] = 0;
}
}
#매도진입 중
if MarketPosition == -1 Then{
//청산 발생 횟수 카운트
if CurrentContracts < CurrentContracts[1] then{
Sxcnt = Sxcnt+1;
}
//진입 발생 횟수 카운트
if CurrentContracts > CurrentContracts[1] Then{
Scnt = Scnt+1;
//가장최근 진입가가 1, 그다음최근이 2 순으로 저장
SE[1] = LatestEntryPrice;
for cnt = 2 to 19{
SE[cnt] = SE[cnt-1][1];
}
}
//진입횟수가 청산횟수보다 많을때만 진행
if Scnt > Sxcnt then{
#초기값은 가장최근 진입가
HH = SE[1];
#최근 진입가부터 과거 진입가를 가져와 비교해 최고가를 구하는데
#(예를들어 현재 피라미딩5회이면, SE[1]~SE[5]까지 값이 저장되어 있고 SE[5]가 첫 진입가인데
#청산1회면 SE[1],SE[2],SE[3],SE[4]만 가져오고 SE[5]는 빼고 최저가 계산)
#즉 피라미딩 전체 진입가 중 청산횟수만큼 과거 진입의 가격은 제외하고 최고가 계산
for cnt = 1 to Scnt-Sxcnt
{
if SE[cnt] > HH Then
HH = SE[cnt];
}
}
}
Else{#도수포지션이 아니면 모두 0으로 초기화
Scnt = 0;
Sxcnt = 0;
for cnt = 1 to 20
{
SE[cnt] = 0;
}
}
즐거운 하루되세요
> 미송 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다
> 피라미딩 적용시
최초 진입가 256.0
1차 피라미딩 257.0
2차 피라미딩 258.0
3차 피라미딩 259.0
4차 피라미딩 260.0
5차 피라미딩 및 최초 진입가 청산 261.0
6차 피라미딩 및 1차 피라미딩 청산 262.0
7차 피라미딩 및 2차 피라미딩 청산 263.0
. .
. .
. .
일 경우
최초 진입 256.0 이후 최고가가 5차 피라미딩 및 최초진입가 청산지점인 261.0 미만인 가격
이 최고가일 경우, 최초 진입가(256.0)를 최저가로 인식
6차 피라미딩 및 1차 피라미딩 청산이 이루어지는 261.0 이상 262.0 미만인 상태에서 최고가
를 형성할경우 1차 피라미딩 가격(257.0)을 최저가로 인식
7차 피라미딩 및 2차 피라미딩 청산이 이루어지는 262.0 이상 263.0 미만인 상태에서 최고가
를 형성할 경우 2차 피라미딩 가격(258.0)을 최저가로 인식
8차 ~~~, 9차 ~~~, 10차 ~~~ 일 경우도 적용될수 있는 시스템식을 부탁드립니다
반대로 매도의 경우도 적용할 수 있는 시스템식도 부탁드립니다.