커뮤니티
문의
2014-11-13 15:07:33
153
글번호 80347
지난번 비슷한 질문을 드렸었는데.. 좀 복잡하고 시간이 오래 걸린다고 하셔서...
환경을 조금 간단하게 마련했습니다...약간의 꼼수를 활용할수있게 도와주십시오.
다름이 아니라. 제가 시스템 식을 작성해보니 캔들이 12개 이내에서 신호가 발생하면 손실이 됩니다.
예전에는 가상으로 신호를 발생하고 그 신호가 수익이 되면 진입하게 신호를 내게 했었지만...
지금은 data2에서 신호를 받아서 매매신호를 내고 있습니다.
data2 에서 발생하는 신호는 2,3,4,5 가 발생합니다. 2와 5의 데이타가 발생하면 매수.
3,4 는 매도로 진입합니다. 데이타의 빈도는 2 또는 4로 거의 이루어져 있습니다.
var1=data2(c);
if (var1==2 or var1==5) then
buy("B");
if (var1==3 or var1==4) then
sell("S");
예를들어 제가 원하는 시스템 식은요..
제 시스템 식은 B S B S B S 이렇게 번갈아가면서 계속 포지션을 가지고 있습니다.
B발생 -> 12개 캔들이 발생하기 전에 positionprofit< 0 (현재손실) 이라면
다음 S발생(data2 가 3,4 값이라해도...)때 매도신호를 내지 않고 기존 매수신호 B 를 유지합니다.(12개 캔들이 발생하기전에 신호가 나오고 현재 손실이므로..)
그 이후 즉, data2가 3or 4로 바뀐이후 다시 12개 캔들이 지나기 전에 다시 신호가 나오면(data2가 2 or 5) 그때 매수를 매도로 강제로 바꿔서 냅니다. 계속 이렇게 12개 캔들이 발생하기 전에 신호가 나오면 반대로 신호를 낼수있게 부탁드립니다.
다시 정리하면 12개 캔들이 발생하기 전에 신호발생시 손실이라면 그 다음 신호 건너띄고 12개 캔들 발생전 신호 시 반대로 신호 나오면 됩니다.
그리고 이전 신호 진입가..
즉 마지막에 매수를 진입했다면...직전 매도 진입가격을 넘어서서 떨어지면. 바로 매도스위칭될 수 있게,
마지막 매도신호 진입이라면 직전 매수 진입가격이 넘어서면 매수스위칭 될수있게 부탁드립니다...
부탁드립니다.
if (var1==2 or var1==5) then
{
#가상손익 계산
if T == -1 Then{
PL = EP-C;
PL1 = PL[1];
}
EP = C;
T = 1;
if (var1==3 or var1==4) then
{
#가상손익 계산
if T == 1 Then{
PL = C-EP;
PL1 = PL[1];
}
EP = C;
T = -1;
답변 1
예스스탁 예스스탁 답변
2014-11-13 18:23:41
안녕하세요
예스스탁입니다.
해당 내용 고민해 봤지만 상환이 여러가지로 만들어 질꺼 같은데 머리속에 잘 정리가 되지 않습니다.
식을 작성하기 위해서는 어느정도 식의 구도가 잡혀야 하는데 잡히지를 않습니다.
아래 내용이 식작성에 도움이 되셨으면 합니다.
가상손익은 기존과 같은 로직입니다.
매수나 매도조건이 발생하면
이전 가상진입의 손익과 봉수를 기준으로
진입할지 건너뛸지를 결정하고 반대방향으로 주문할지 조건과 같은 방향으로 주문을 할지
판단해 주문을 하게 됩니다.
var : T(0),PL(0),PL1(0),EP(0),Bidx(0),Sidx(0),BuyPass(false),SellPass(false);
var1 = data2(c);
if (var1==2 or var1==5) then
{
#가상손익 계산
if T == -1 Then{
PL = EP-C;
PL1 = PL[1];
}
EP = C;
T = 1;
Bidx = index;
BuyPass = false;
if T == 1 and T[1] != 1 Then{
if Bidx < Sidx+12 and PL < 0 Then
Buypass = true;
//무포지션 상태이면 매수진입
if MarketPosition == 0 Then
buy();
#매수상태에서 SellPass가 true였고 BuyPass가 true이면 매도로 스위칭
if MarketPosition == 1 and SellPass == true and BuyPass == true Then
sell();
#매도상태에서 BuyPass가 false이면 매수로 스위칭
if MarketPosition == -1 and Buypass == false Then
Buy();
}
}
if (var1==3 or var1==4) then
{
#가상손익 계산
if T == 1 Then{
PL = C-EP;
PL1 = PL[1];
}
EP = C;
T = -1;
Sidx = index;
SellPass = false;
if T == -1 and T[1] != -1 Then
if Sidx < Bidx+12 and PL < 0 Then{
Sellpass = true;
//무포지션 상태이면 매도진입
if MarketPosition == 0 Then
sell();
#매도상태에서 buyPass가 true였고 SellPass가 true이면 매수로 스위칭
if MarketPosition == -1 and SellPass == true and BuyPass == true Then
Buy();
#매수상태에서 SellPass가 false이면 매도로 스위칭
if MarketPosition == 1 and Buypass == false Then
Sell();
}
}
즐거운 하루되세요
> hjkang철인 님이 쓴 글입니다.
> 제목 : 문의
> 지난번 비슷한 질문을 드렸었는데.. 좀 복잡하고 시간이 오래 걸린다고 하셔서...
환경을 조금 간단하게 마련했습니다...약간의 꼼수를 활용할수있게 도와주십시오.
다름이 아니라. 제가 시스템 식을 작성해보니 캔들이 12개 이내에서 신호가 발생하면 손실이 됩니다.
예전에는 가상으로 신호를 발생하고 그 신호가 수익이 되면 진입하게 신호를 내게 했었지만...
지금은 data2에서 신호를 받아서 매매신호를 내고 있습니다.
data2 에서 발생하는 신호는 2,3,4,5 가 발생합니다. 2와 5의 데이타가 발생하면 매수.
3,4 는 매도로 진입합니다. 데이타의 빈도는 2 또는 4로 거의 이루어져 있습니다.
var1=data2(c);
if (var1==2 or var1==5) then
buy("B");
if (var1==3 or var1==4) then
sell("S");
예를들어 제가 원하는 시스템 식은요..
제 시스템 식은 B S B S B S 이렇게 번갈아가면서 계속 포지션을 가지고 있습니다.
B발생 -> 12개 캔들이 발생하기 전에 positionprofit< 0 (현재손실) 이라면
다음 S발생(data2 가 3,4 값이라해도...)때 매도신호를 내지 않고 기존 매수신호 B 를 유지합니다.(12개 캔들이 발생하기전에 신호가 나오고 현재 손실이므로..)
그 이후 즉, data2가 3or 4로 바뀐이후 다시 12개 캔들이 지나기 전에 다시 신호가 나오면(data2가 2 or 5) 그때 매수를 매도로 강제로 바꿔서 냅니다. 계속 이렇게 12개 캔들이 발생하기 전에 신호가 나오면 반대로 신호를 낼수있게 부탁드립니다.
다시 정리하면 12개 캔들이 발생하기 전에 신호발생시 손실이라면 그 다음 신호 건너띄고 12개 캔들 발생전 신호 시 반대로 신호 나오면 됩니다.
그리고 이전 신호 진입가..
즉 마지막에 매수를 진입했다면...직전 매도 진입가격을 넘어서서 떨어지면. 바로 매도스위칭될 수 있게,
마지막 매도신호 진입이라면 직전 매수 진입가격이 넘어서면 매수스위칭 될수있게 부탁드립니다...
부탁드립니다.
if (var1==2 or var1==5) then
{
#가상손익 계산
if T == -1 Then{
PL = EP-C;
PL1 = PL[1];
}
EP = C;
T = 1;
if (var1==3 or var1==4) then
{
#가상손익 계산
if T == 1 Then{
PL = C-EP;
PL1 = PL[1];
}
EP = C;
T = -1;