커뮤니티
문의..
2014-11-14 15:53:55
190
글번호 80384
어제.. 답변. 감사드립니다..
간단한 내용인데... 실제로 구현은 많이 어렵네요...
어제 답변해 주신 내용입니다..
질문은 맨 아래에 있습니다...
/////////////////////////////////////////////////////////////////
안녕하세요
예스스탁입니다.
해당 내용 고민해 봤지만 상환이 여러가지로 만들어 질꺼 같은데 머리속에 잘 정리가 되지 않습니다.
식을 작성하기 위해서는 어느정도 식의 구도가 잡혀야 하는데 잡히지를 않습니다.
아래 내용이 식작성에 도움이 되셨으면 합니다.
가상손익은 기존과 같은 로직입니다.
매수나 매도조건이 발생하면
이전 가상진입의 손익과 봉수를 기준으로
진입할지 건너뛸지를 결정하고 반대방향으로 주문할지 조건과 같은 방향으로 주문을 할지
판단해 주문을 하게 됩니다.
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개 캔들 발생전 신호 시 반대로 신호 나오면 됩니다.
그리고 이전 신호 진입가..
즉 마지막에 매수를 진입했다면...직전 매도 진입가격을 넘어서서 떨어지면. 바로 매도스위칭될 수 있게,
마지막 매도신호 진입이라면 직전 매수 진입가격이 넘어서면 매수스위칭 될수있게 부탁드립니다...
부탁드립니다.
//////////////////////////////////////////////////////////////////////////////////////
신호를 반대로 하는게 어려우니.. 다른 질문드리겠습니다.
질문 1..
제가 data2 에서 받는 신호는 2,5 매수. 3,4 매도 이었습니다..
var1=data2(c);
if (var1==2 or var1==5) then
buy("B");
if (var1==3 or var1==4) then
sell("S");
즉... data2를 열어보면... 222222222222224444444444442222222222444444444
이렇게 반복되어 나옵니다.
즉...2로 나오는 구간은... 매수고.. 4로 나오는 구간은 매도입니다.
여기서... 제가 원하는 것은.... 2->4로 바뀌는 캔들....4->2로 바뀌는 캔들에서만.. 신호가 발생하고... 두번째 4 나 두번째 2 인 구간은... 값은.. 매도. 매수 신호 발생또는 유지해야 하지만.. 첫번째 바뀌는 숫자가 아니므로... 그 이후에는 신호가 나오지 않게 부탁드립니다.
전체식 변경말고.. 바로 가까이 간단히..매수 매도 라고 되어있는 바로 윗식에서 변경 부탁드립니다.
질문2. 어제 안내해 주신내용에는 가상손익계산하는것이 들어가 있는데요..
안내해주신 가상손익계산하는 것과... PositionProfit 을 이용하는것과의 차이점은 뭔가요?
답변 1
예스스탁 예스스탁 답변
2014-11-14 17:52:11
안녕하세요
예스스탁입니다.
1.
var1=data2(c);
if (var1 ==2 and var1[1] == 4) then
buy("B");
if (var1 == 4 and var1[1] == 2) then
sell("S");
2.
PositionProfit 수는 실제 신호발생후의 손익입니다.
가상손익은 if조건으로 지정한 가상의 매매에서 손익입니다.
예를 들어 골드1 --> 데드(신호 건너뜀) --> 골드2
골드가 Buy신호 발생해 매수하고 이후 데드는 건너뛰고 다음 골드에서 청산했다면
PositionProfit(0)은 골드1에서 진입한 포지션의 손익입니다.
하지만 가상에서서는 데드 --> 골드2까지 거래가 PL
골드1->데드까지 거래가 PL1이 됩니다.
즐거운 하루되세요
> hjkang철인 님이 쓴 글입니다.
> 제목 : 문의..
> 어제.. 답변. 감사드립니다..
간단한 내용인데... 실제로 구현은 많이 어렵네요...
어제 답변해 주신 내용입니다..
질문은 맨 아래에 있습니다...
/////////////////////////////////////////////////////////////////
안녕하세요
예스스탁입니다.
해당 내용 고민해 봤지만 상환이 여러가지로 만들어 질꺼 같은데 머리속에 잘 정리가 되지 않습니다.
식을 작성하기 위해서는 어느정도 식의 구도가 잡혀야 하는데 잡히지를 않습니다.
아래 내용이 식작성에 도움이 되셨으면 합니다.
가상손익은 기존과 같은 로직입니다.
매수나 매도조건이 발생하면
이전 가상진입의 손익과 봉수를 기준으로
진입할지 건너뛸지를 결정하고 반대방향으로 주문할지 조건과 같은 방향으로 주문을 할지
판단해 주문을 하게 됩니다.
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개 캔들 발생전 신호 시 반대로 신호 나오면 됩니다.
그리고 이전 신호 진입가..
즉 마지막에 매수를 진입했다면...직전 매도 진입가격을 넘어서서 떨어지면. 바로 매도스위칭될 수 있게,
마지막 매도신호 진입이라면 직전 매수 진입가격이 넘어서면 매수스위칭 될수있게 부탁드립니다...
부탁드립니다.
//////////////////////////////////////////////////////////////////////////////////////
신호를 반대로 하는게 어려우니.. 다른 질문드리겠습니다.
질문 1..
제가 data2 에서 받는 신호는 2,5 매수. 3,4 매도 이었습니다..
var1=data2(c);
if (var1==2 or var1==5) then
buy("B");
if (var1==3 or var1==4) then
sell("S");
즉... data2를 열어보면... 222222222222224444444444442222222222444444444
이렇게 반복되어 나옵니다.
즉...2로 나오는 구간은... 매수고.. 4로 나오는 구간은 매도입니다.
여기서... 제가 원하는 것은.... 2->4로 바뀌는 캔들....4->2로 바뀌는 캔들에서만.. 신호가 발생하고... 두번째 4 나 두번째 2 인 구간은... 값은.. 매도. 매수 신호 발생또는 유지해야 하지만.. 첫번째 바뀌는 숫자가 아니므로... 그 이후에는 신호가 나오지 않게 부탁드립니다.
전체식 변경말고.. 바로 가까이 간단히..매수 매도 라고 되어있는 바로 윗식에서 변경 부탁드립니다.
질문2. 어제 안내해 주신내용에는 가상손익계산하는것이 들어가 있는데요..
안내해주신 가상손익계산하는 것과... PositionProfit 을 이용하는것과의 차이점은 뭔가요?
다음글
이전글