커뮤니티
현물투자자입니다. 두가지 문의 드립니다.
2010-05-13 01:14:43
573
글번호 29889
1. 지표식 적용시 화면에서 다르게 보이는 경우인데요..
예를 들어 아래와 같이 첫번째 지표로 농심을 보면 12일 주가가 40일 이평선 아래
있어 보이는데, 두번째 처럼 40일 이평선 하나만을 적용하면 12일 주가가
이평선 한~~참 위에 있는 것처럼 보입니다..
--- 첫번째 ---
Input : Period1(40), Period2(180);
var : Sma1(0),Sma2(0);
Sma1 = ma(C,Period1);
Sma2 = ma(C,Period2);
Plot1(Sma1, "이동평균40");
Plot2(Sma2, "이동평균180");
--- 첫번째 ---
Input : Period1(40);
var : Sma1(0);
Sma1 = ma(C,Period1);
Plot1(Sma1, "이동평균40");
-----------------------------------------------------------------
2. 제가 작성한 수식 확인 좀 부탁 드립니다.
주석에 단것처럼 동작할 수 있도록 수정 좀 해주세요..
매수 & 청산 조건은 제가 원하는 대로 동작하는 것 같은데요..
** 매도 조건은 시뮬레이션 해보면 원하는대로 안 나옵니다..
-- 40일 이평선 기준으로 5분봉을 기준으로 매매 하려고 합니다.
input : P(40), P1(22), MaxMinus(3), Profit1(2), Profit2(3);
var : cnt(0), Bcnt(0), SellPrice1(0), SellPrice2(0);
var1 = 0;
var2 = 0;
var3 = 0;
/* 날짜가 변경되면(매일의 첫번째 봉) 40일 이동평균 계산 */
if date[1] != date Then
{
/* P : X일 이동평균선 계산 */
for cnt = 0 to P-1
{
var1 = var1+DayClose(cnt);
}
value1 = var1/P;
/*--------------------------------------*/
Bcnt = 0;
/*--------------------------------------*/
}
/*----------------------------------------------------------------------*/
/* 매수 조건 설정 */
/* - 하루에 한번만 매수 */
/*----------------------------------------------------------------------*/
if CrossUp(C, value1) and Bcnt <> 1 Then
{
Buy("B", OnClose, DEF, 120);
Bcnt = 1;
}
/*----------------------------------------------------------------------*/
/* 매도 가격 설정 */
/*----------------------------------------------------------------------*/
SellPrice1 = EntryPrice + EntryPrice * (Profit1/100); // 첫번째 이익 매도 2%
SellPrice2 = EntryPrice + EntryPrice * (Profit2/100); // 두번째 이익 매도 3%
/*----------------------------------------------------------------------*/
/* 매도 조건 설정 */
/*----------------------------------------------------------------------*/
// --> 추가로 첫번째 이익 매도 날에는 두번째 매도를 하지 않도록 하고 싶습니다.
if MarketPosition == 1 Then{
if CurrentContracts == MaxContracts Then
ExitLong("bx1",AtStop,SellPrice1,"",40,1); // 첫번째 이익 매도 2%
if CurrentContracts < MaxContracts Then
ExitLong("bx2",AtStop,SellPrice2,"",40,1); // 두번째 이익 매도 3%
}
//진입가에서 10% 이상 수익일때는 최고가대비 10%하락시 매수청산
if highest(H,BarsSinceEntry) >= EntryPrice*1.1 and MarketPosition == 1 Then
{
exitlong("bx3",AtStop,Highest(H,BarsSinceEntry)*0.9);
Bcnt = 0;
}
/*----------------------------------------------------------------------*/
/* 청산 조건 설정 */
/*----------------------------------------------------------------------*/
if CrossDown(C, value1*(1-MaxMinus/100)) Then
{
ExitLong("FN");
Bcnt = 0;
}
/*----------------------------------------------------------------------*/
/* 최대 손실 설정 */
/*----------------------------------------------------------------------*/
SetStopLoss(MaxMinus, PercentStop);
답변 1
예스스탁 예스스탁 답변
2010-05-13 09:21:06
안녕하세요
예스스탁입니다.
1.
지표속성의 y축 표시탭에서 가격으로 설정하시기 바랍니다.
2.
수정된 식입니다.
동일봉에서 3%까지 조건만족하여 동시에 발생되면
해당내용 컨트롤이 가능하지 않습니다. 참고하시기 바랍니다.
input : P(40), P1(22), MaxMinus(3), Profit1(2), Profit2(3);
var : cnt(0), Bcnt(0), SellPrice1(0), SellPrice2(0),daycnt(0);
var1 = 0;
var2 = 0;
var3 = 0;
/* 날짜가 변경되면(매일의 첫번째 봉) 40일 이동평균 계산 */
if date[1] != date Then
{
Condition1 = false;
daycnt = daycnt+1;
/* P : X일 이동평균선 계산 */
for cnt = 0 to P-1
{
var1 = var1+DayClose(cnt);
}
value1 = var1/P;
/*--------------------------------------*/
Bcnt = 0;
/*--------------------------------------*/
}
/*----------------------------------------------------------------------*/
/* 매수 조건 설정 */
/* - 하루에 한번만 매수 */
/*----------------------------------------------------------------------*/
if CrossUp(C, value1) and Bcnt <> 1 Then
{
Buy("B", OnClose, DEF, 120);
Bcnt = 1;
}
/*----------------------------------------------------------------------*/
/* 매도 조건 설정 */
/*----------------------------------------------------------------------*/
// --> 추가로 첫번째 이익 매도 날에는 두번째 매도를 하지 않도록 하고 싶습니다.
if MarketPosition == 1 Then{
SellPrice1 = EntryPrice + EntryPrice * (Profit1/100); // 첫번째 이익 매도 2%
SellPrice2 = EntryPrice + EntryPrice * (Profit2/100); // 두번째 이익 매도 3%
if CurrentContracts == MaxContracts Then
ExitLong("bx1",AtStop,SellPrice1,"",40,1); // 첫번째 이익 매도 2%
if CurrentContracts < MaxContracts Then{
Condition1 = true;
var11 = daycnt;
}
if Condition1 == true and daycnt >= var11+1 Then{
ExitLong("bx2",AtStop,SellPrice2,"",40,1); // 두번째 이익 매도 3%
}
}
if MarketPosition == 0 Then
Condition1 = false;
//진입가에서 10% 이상 수익일때는 최고가대비 10%하락시 매수청산
if highest(H,BarsSinceEntry) >= EntryPrice*1.1 and MarketPosition == 1 Then
{
exitlong("bx3",AtStop,Highest(H,BarsSinceEntry)*0.9);
Bcnt = 0;
}
/*----------------------------------------------------------------------*/
/* 청산 조건 설정 */
/*----------------------------------------------------------------------*/
if CrossDown(C, value1*(1-MaxMinus/100)) Then
{
ExitLong("FN");
Bcnt = 0;
}
/*----------------------------------------------------------------------*/
/* 최대 손실 설정 */
/*----------------------------------------------------------------------*/
SetStopLoss(MaxMinus, PercentStop);
즐거운 하루되세요
> 그대로영원히 님이 쓴 글입니다.
> 제목 : 현물투자자입니다. 두가지 문의 드립니다.
> 1. 지표식 적용시 화면에서 다르게 보이는 경우인데요..
예를 들어 아래와 같이 첫번째 지표로 농심을 보면 12일 주가가 40일 이평선 아래
있어 보이는데, 두번째 처럼 40일 이평선 하나만을 적용하면 12일 주가가
이평선 한~~참 위에 있는 것처럼 보입니다..
--- 첫번째 ---
Input : Period1(40), Period2(180);
var : Sma1(0),Sma2(0);
Sma1 = ma(C,Period1);
Sma2 = ma(C,Period2);
Plot1(Sma1, "이동평균40");
Plot2(Sma2, "이동평균180");
--- 첫번째 ---
Input : Period1(40);
var : Sma1(0);
Sma1 = ma(C,Period1);
Plot1(Sma1, "이동평균40");
-----------------------------------------------------------------
2. 제가 작성한 수식 확인 좀 부탁 드립니다.
주석에 단것처럼 동작할 수 있도록 수정 좀 해주세요..
매수 & 청산 조건은 제가 원하는 대로 동작하는 것 같은데요..
** 매도 조건은 시뮬레이션 해보면 원하는대로 안 나옵니다..
-- 40일 이평선 기준으로 5분봉을 기준으로 매매 하려고 합니다.
input : P(40), P1(22), MaxMinus(3), Profit1(2), Profit2(3);
var : cnt(0), Bcnt(0), SellPrice1(0), SellPrice2(0);
var1 = 0;
var2 = 0;
var3 = 0;
/* 날짜가 변경되면(매일의 첫번째 봉) 40일 이동평균 계산 */
if date[1] != date Then
{
/* P : X일 이동평균선 계산 */
for cnt = 0 to P-1
{
var1 = var1+DayClose(cnt);
}
value1 = var1/P;
/*--------------------------------------*/
Bcnt = 0;
/*--------------------------------------*/
}
/*----------------------------------------------------------------------*/
/* 매수 조건 설정 */
/* - 하루에 한번만 매수 */
/*----------------------------------------------------------------------*/
if CrossUp(C, value1) and Bcnt <> 1 Then
{
Buy("B", OnClose, DEF, 120);
Bcnt = 1;
}
/*----------------------------------------------------------------------*/
/* 매도 가격 설정 */
/*----------------------------------------------------------------------*/
SellPrice1 = EntryPrice + EntryPrice * (Profit1/100); // 첫번째 이익 매도 2%
SellPrice2 = EntryPrice + EntryPrice * (Profit2/100); // 두번째 이익 매도 3%
/*----------------------------------------------------------------------*/
/* 매도 조건 설정 */
/*----------------------------------------------------------------------*/
// --> 추가로 첫번째 이익 매도 날에는 두번째 매도를 하지 않도록 하고 싶습니다.
if MarketPosition == 1 Then{
if CurrentContracts == MaxContracts Then
ExitLong("bx1",AtStop,SellPrice1,"",40,1); // 첫번째 이익 매도 2%
if CurrentContracts < MaxContracts Then
ExitLong("bx2",AtStop,SellPrice2,"",40,1); // 두번째 이익 매도 3%
}
//진입가에서 10% 이상 수익일때는 최고가대비 10%하락시 매수청산
if highest(H,BarsSinceEntry) >= EntryPrice*1.1 and MarketPosition == 1 Then
{
exitlong("bx3",AtStop,Highest(H,BarsSinceEntry)*0.9);
Bcnt = 0;
}
/*----------------------------------------------------------------------*/
/* 청산 조건 설정 */
/*----------------------------------------------------------------------*/
if CrossDown(C, value1*(1-MaxMinus/100)) Then
{
ExitLong("FN");
Bcnt = 0;
}
/*----------------------------------------------------------------------*/
/* 최대 손실 설정 */
/*----------------------------------------------------------------------*/
SetStopLoss(MaxMinus, PercentStop);