커뮤니티
반복매수조건추가(오늘꼭좀부탁드립니다)
2013-03-06 18:15:28
293
글번호 60306
아래식에서
반복매수를 추가하고 싶습니다 (글자로 쓰다보니깐 좀 엉망입니다010 7161 5906번입니다)
macd기준으로 반복매수청산조건에 따라 청산하고 난뒤
다시 매수 할때 macd오실 양봉이거나
반복매수청산한 가격보다 현재가격이 5틱 아래일때 다시 재매수를
하고 싶습니다
이때는 macd가 음봉에 있을건데 이때는 macd음봉 청산이 되어 지면 안됩니다
재매수후 가격이 내려가면 청산선이나 로스컷에서 청산이 될꺼구
재매수후 가격이 좀 더 올라가면 macd양봉으로 전환 될껍니다
양봉 전환이 되면 같은 조건으로 시스템이 돌아가서 macd오실 음봉이 되면
청산을 하고 조건값에 의해 재매수가 되어져야 하겠습니다
5틱은 외부변수로 시물레이션 가능 했으면 하구요
이때 현재가격은 청산이평선과 로스컷 가격 보다 최소 3틱은 위에 있어야 재매수 되어져야 하구요
이 최소틱도 외부변수로 시물레이션 가능 했으면 하구요
아 그리고 매수후 이조건에서 반복하지 말고
macd오실 음봉청산후 위에 이야기 한거 처럼 계속 반복하지 않고
5틱 아래서나 macd오실 양봉전환 매수 1회만 재 매수 하고 청산까지
가지고 가는것도 좀 부탁 드립니다
너무 죄송합니다 ^^
input : rsiPeriod(4), RSVValue(56);
input : maPeriod1(21),maPeriod2(25),maPeriod3(31), maPeriod4(57);
input : Vol(970);
input : 간격(0.15);
input : LossPoint(1.05);
input : ProfitPoint(2.35);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if MarketPosition == 0 and
V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
}
# 반복매수조건
if Condition1 == true and CrossUp(MACDO,0) Then
buy("반복매수");
#반복매수청산조건
if CrossDown(MACDO,0) Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitLong("손절",AtStop,EntryPrice-Losspoint);
ExitLong("목표",AtLimit,EntryPrice+Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
답변 3
예스스탁 예스스탁 답변
2013-03-06 18:40:51
안녕하세요
예스스탁입니다.
1.
input : rsiPeriod(4), RSVValue(56),N(5),X(3);
input : maPeriod1(21),maPeriod2(25),maPeriod3(31), maPeriod4(57);
input : Vol(970);
input : 간격(0.15);
input : LossPoint(1.05);
input : ProfitPoint(2.35);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if MarketPosition == 0 and
V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
}
# 반복매수조건
if Condition1 == true and MarketPosition == 0 and
IsExitName("반복청산",1) == true and
C >= mav4+PriceScale*X and
(CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then
buy("반복매수");
#반복매수청산조건
if CrossDown(MACDO,0) Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitLong("손절",AtStop,EntryPrice-Losspoint);
ExitLong("목표",AtLimit,EntryPrice+Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
2.반복 진입이 1회만 발생하게 하는 식입니다.
input : rsiPeriod(4), RSVValue(56),N(5),X(3);
input : maPeriod1(21),maPeriod2(25),maPeriod3(31), maPeriod4(57);
input : Vol(970);
input : 간격(0.15);
input : LossPoint(1.05);
input : ProfitPoint(2.35);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0),cnt(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if MarketPosition == 0 and
V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
cnt = 0;
}
# 반복매수조건
if Condition1 == true and cnt == 0 and MarketPosition == 0 and
IsExitName("반복청산",1) == true and
C >= mav4+PriceScale*X and
(CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then{
buy("반복매수");
cnt = 1;
}
#반복매수청산조건
if CrossDown(MACDO,0) Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitLong("손절",AtStop,EntryPrice-Losspoint);
ExitLong("목표",AtLimit,EntryPrice+Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
즐거운 하루되세요
> 아라미스33 님이 쓴 글입니다.
> 제목 : 반복매수조건추가(오늘꼭좀부탁드립니다)
> 아래식에서
반복매수를 추가하고 싶습니다 (글자로 쓰다보니깐 좀 엉망입니다010 7161 5906번입니다)
macd기준으로 반복매수청산조건에 따라 청산하고 난뒤
다시 매수 할때 macd오실 양봉이거나
반복매수청산한 가격보다 현재가격이 5틱 아래일때 다시 재매수를
하고 싶습니다
이때는 macd가 음봉에 있을건데 이때는 macd음봉 청산이 되어 지면 안됩니다
재매수후 가격이 내려가면 청산선이나 로스컷에서 청산이 될꺼구
재매수후 가격이 좀 더 올라가면 macd양봉으로 전환 될껍니다
양봉 전환이 되면 같은 조건으로 시스템이 돌아가서 macd오실 음봉이 되면
청산을 하고 조건값에 의해 재매수가 되어져야 하겠습니다
5틱은 외부변수로 시물레이션 가능 했으면 하구요
이때 현재가격은 청산이평선과 로스컷 가격 보다 최소 3틱은 위에 있어야 재매수 되어져야 하구요
이 최소틱도 외부변수로 시물레이션 가능 했으면 하구요
아 그리고 매수후 이조건에서 반복하지 말고
macd오실 음봉청산후 위에 이야기 한거 처럼 계속 반복하지 않고
5틱 아래서나 macd오실 양봉전환 매수 1회만 재 매수 하고 청산까지
가지고 가는것도 좀 부탁 드립니다
너무 죄송합니다 ^^
input : rsiPeriod(4), RSVValue(56);
input : maPeriod1(21),maPeriod2(25),maPeriod3(31), maPeriod4(57);
input : Vol(970);
input : 간격(0.15);
input : LossPoint(1.05);
input : ProfitPoint(2.35);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if MarketPosition == 0 and
V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
}
# 반복매수조건
if Condition1 == true and CrossUp(MACDO,0) Then
buy("반복매수");
#반복매수청산조건
if CrossDown(MACDO,0) Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitLong("손절",AtStop,EntryPrice-Losspoint);
ExitLong("목표",AtLimit,EntryPrice+Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
아라미스33
2013-03-07 09:27:37
너무 감사드립니다
제가 설명이 좀 부족했나 봅니다
2.번식과 관련된 내용입니다
왼쪽이 반복매수가 없는식이구요
오른쪽이 반복매수 반복매수청산이 있는식입니다
제가 생각하고 있는식은 최초매수는 왼쪽에 매수와 일단 처음 조건이 같습니다
그 이후가 문제인데 첫번째 반복청산은 macd오실레이터 음봉에 정확히 반복청산이
완료 되었구요
반복매수또한 5틱아래에 정확히 되었습니다 제가 이야기한 반복매수 한번이라함은
최초매수후 반복청산 반복매수 이렇게까지만 되고
반복청산후 반복매수된 부분은 왼쪽에 그래프에 있는 익절까지 똑같이 가야 합니다
중간에 mav4밑으로 간다면 거기까지구요
정확히 이야기 한다면 오른쪽 반복매수의 청산 시점은 왼쪽그래프의 청산 시점과
동일 하면 좋겠습니다
아 그리고 오른쪽그래프 우측에 최초매수 또한 이 청산 시점안에서는
나오면 안되구요 왼쪽 그래프의 청산후 매수가 나왔다면 오른쪽에도 최초매수가
되어야 합니다
그리고 N에 값을 두는 이유는 반복청산후 반복매수시 보다 유리한 가격으로
진입하고 싶어서 입니다 정확히 표현하면 틱봉에 종가가 -5이하인 첫번째 봉이
됩니다(반복청산가 보다-5,-6,-,7....이 다 포함됨)
이부분은 그렇게 되어 있는거 같은데 맞죠?^^;;
그리고 최초매수신호시 macd오실 양봉일때만 매수신호 나오게 좀 부탁 들립니다
안그러면 음봉에 진입하면 하자마자 반복청산이 나오니깐요
아침부터 너무 감사드립니다
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 반복매수조건추가(오늘꼭좀부탁드립니다)
> 안녕하세요
예스스탁입니다.
1.
input : rsiPeriod(4), RSVValue(56),N(5),X(3);
input : maPeriod1(21),maPeriod2(25),maPeriod3(31), maPeriod4(57);
input : Vol(970);
input : 간격(0.15);
input : LossPoint(1.05);
input : ProfitPoint(2.35);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if MarketPosition == 0 and
V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
}
# 반복매수조건
if Condition1 == true and MarketPosition == 0 and
IsExitName("반복청산",1) == true and
C >= mav4+PriceScale*X and
(CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then
buy("반복매수");
#반복매수청산조건
if CrossDown(MACDO,0) Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitLong("손절",AtStop,EntryPrice-Losspoint);
ExitLong("목표",AtLimit,EntryPrice+Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
2.반복 진입이 1회만 발생하게 하는 식입니다.
input : rsiPeriod(4), RSVValue(56),N(5),X(3);
input : maPeriod1(21),maPeriod2(25),maPeriod3(31), maPeriod4(57);
input : Vol(970);
input : 간격(0.15);
input : LossPoint(1.05);
input : ProfitPoint(2.35);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0),cnt(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if MarketPosition == 0 and
V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
cnt = 0;
}
# 반복매수조건
if Condition1 == true and cnt == 0 and MarketPosition == 0 and
IsExitName("반복청산",1) == true and
C >= mav4+PriceScale*X and
(CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then{
buy("반복매수");
cnt = 1;
}
#반복매수청산조건
if CrossDown(MACDO,0) Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitLong("손절",AtStop,EntryPrice-Losspoint);
ExitLong("목표",AtLimit,EntryPrice+Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
즐거운 하루되세요
> 아라미스33 님이 쓴 글입니다.
> 제목 : 반복매수조건추가(오늘꼭좀부탁드립니다)
> 아래식에서
반복매수를 추가하고 싶습니다 (글자로 쓰다보니깐 좀 엉망입니다010 7161 5906번입니다)
macd기준으로 반복매수청산조건에 따라 청산하고 난뒤
다시 매수 할때 macd오실 양봉이거나
반복매수청산한 가격보다 현재가격이 5틱 아래일때 다시 재매수를
하고 싶습니다
이때는 macd가 음봉에 있을건데 이때는 macd음봉 청산이 되어 지면 안됩니다
재매수후 가격이 내려가면 청산선이나 로스컷에서 청산이 될꺼구
재매수후 가격이 좀 더 올라가면 macd양봉으로 전환 될껍니다
양봉 전환이 되면 같은 조건으로 시스템이 돌아가서 macd오실 음봉이 되면
청산을 하고 조건값에 의해 재매수가 되어져야 하겠습니다
5틱은 외부변수로 시물레이션 가능 했으면 하구요
이때 현재가격은 청산이평선과 로스컷 가격 보다 최소 3틱은 위에 있어야 재매수 되어져야 하구요
이 최소틱도 외부변수로 시물레이션 가능 했으면 하구요
아 그리고 매수후 이조건에서 반복하지 말고
macd오실 음봉청산후 위에 이야기 한거 처럼 계속 반복하지 않고
5틱 아래서나 macd오실 양봉전환 매수 1회만 재 매수 하고 청산까지
가지고 가는것도 좀 부탁 드립니다
너무 죄송합니다 ^^
input : rsiPeriod(4), RSVValue(56);
input : maPeriod1(21),maPeriod2(25),maPeriod3(31), maPeriod4(57);
input : Vol(970);
input : 간격(0.15);
input : LossPoint(1.05);
input : ProfitPoint(2.35);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if MarketPosition == 0 and
V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
}
# 반복매수조건
if Condition1 == true and CrossUp(MACDO,0) Then
buy("반복매수");
#반복매수청산조건
if CrossDown(MACDO,0) Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitLong("손절",AtStop,EntryPrice-Losspoint);
ExitLong("목표",AtLimit,EntryPrice+Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
예스스탁 예스스탁 답변
2013-03-07 13:18:33
안녕하세요
예스스탁입니다.
input : rsiPeriod(4), RSVValue(56),N(5),X(3);
input : maPeriod1(21),maPeriod2(25),maPeriod3(31), maPeriod4(57);
input : Vol(970);
input : 간격(0.15);
input : LossPoint(1.05);
input : ProfitPoint(2.35);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0),cnt(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if Condition1 == false
&& MarketPosition == 0
&& V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
&& MACDO < 0
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
cnt = 0;
}
# 반복매수조건
if Condition1 == true and cnt == 0 and MarketPosition == 0 and
IsExitName("반복청산",1) == true and
C >= mav4+PriceScale*X and
(CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then{
buy("반복매수");
cnt = 1;
}
#반복매수청산조건
if MarketPosition == 1 and CrossDown(MACDO,0) and cnt == 0 Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if Condition1 == true and C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitLong("손절",AtStop,EntryPrice-Losspoint);
ExitLong("목표",AtLimit,EntryPrice+Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
즐거운 하루되세요
> 아라미스33 님이 쓴 글입니다.
> 제목 : Re : Re : 반복매수조건추가(오늘꼭좀부탁드립니다)
> 너무 감사드립니다
제가 설명이 좀 부족했나 봅니다
2.번식과 관련된 내용입니다
왼쪽이 반복매수가 없는식이구요
오른쪽이 반복매수 반복매수청산이 있는식입니다
제가 생각하고 있는식은 최초매수는 왼쪽에 매수와 일단 처음 조건이 같습니다
그 이후가 문제인데 첫번째 반복청산은 macd오실레이터 음봉에 정확히 반복청산이
완료 되었구요
반복매수또한 5틱아래에 정확히 되었습니다 제가 이야기한 반복매수 한번이라함은
최초매수후 반복청산 반복매수 이렇게까지만 되고
반복청산후 반복매수된 부분은 왼쪽에 그래프에 있는 익절까지 똑같이 가야 합니다
중간에 mav4밑으로 간다면 거기까지구요
정확히 이야기 한다면 오른쪽 반복매수의 청산 시점은 왼쪽그래프의 청산 시점과
동일 하면 좋겠습니다
아 그리고 오른쪽그래프 우측에 최초매수 또한 이 청산 시점안에서는
나오면 안되구요 왼쪽 그래프의 청산후 매수가 나왔다면 오른쪽에도 최초매수가
되어야 합니다
그리고 N에 값을 두는 이유는 반복청산후 반복매수시 보다 유리한 가격으로
진입하고 싶어서 입니다 정확히 표현하면 틱봉에 종가가 -5이하인 첫번째 봉이
됩니다(반복청산가 보다-5,-6,-,7....이 다 포함됨)
이부분은 그렇게 되어 있는거 같은데 맞죠?^^;;
그리고 최초매수신호시 macd오실 양봉일때만 매수신호 나오게 좀 부탁 들립니다
안그러면 음봉에 진입하면 하자마자 반복청산이 나오니깐요
아침부터 너무 감사드립니다
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 반복매수조건추가(오늘꼭좀부탁드립니다)
> 안녕하세요
예스스탁입니다.
1.
input : rsiPeriod(4), RSVValue(56),N(5),X(3);
input : maPeriod1(21),maPeriod2(25),maPeriod3(31), maPeriod4(57);
input : Vol(970);
input : 간격(0.15);
input : LossPoint(1.05);
input : ProfitPoint(2.35);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if MarketPosition == 0 and
V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
}
# 반복매수조건
if Condition1 == true and MarketPosition == 0 and
IsExitName("반복청산",1) == true and
C >= mav4+PriceScale*X and
(CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then
buy("반복매수");
#반복매수청산조건
if CrossDown(MACDO,0) Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitLong("손절",AtStop,EntryPrice-Losspoint);
ExitLong("목표",AtLimit,EntryPrice+Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
2.반복 진입이 1회만 발생하게 하는 식입니다.
input : rsiPeriod(4), RSVValue(56),N(5),X(3);
input : maPeriod1(21),maPeriod2(25),maPeriod3(31), maPeriod4(57);
input : Vol(970);
input : 간격(0.15);
input : LossPoint(1.05);
input : ProfitPoint(2.35);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0),cnt(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if MarketPosition == 0 and
V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
cnt = 0;
}
# 반복매수조건
if Condition1 == true and cnt == 0 and MarketPosition == 0 and
IsExitName("반복청산",1) == true and
C >= mav4+PriceScale*X and
(CrossUp(MACDO,0) or C <= ExitPrice(1)-PriceScale*N) Then{
buy("반복매수");
cnt = 1;
}
#반복매수청산조건
if CrossDown(MACDO,0) Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitLong("손절",AtStop,EntryPrice-Losspoint);
ExitLong("목표",AtLimit,EntryPrice+Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
즐거운 하루되세요
> 아라미스33 님이 쓴 글입니다.
> 제목 : 반복매수조건추가(오늘꼭좀부탁드립니다)
> 아래식에서
반복매수를 추가하고 싶습니다 (글자로 쓰다보니깐 좀 엉망입니다010 7161 5906번입니다)
macd기준으로 반복매수청산조건에 따라 청산하고 난뒤
다시 매수 할때 macd오실 양봉이거나
반복매수청산한 가격보다 현재가격이 5틱 아래일때 다시 재매수를
하고 싶습니다
이때는 macd가 음봉에 있을건데 이때는 macd음봉 청산이 되어 지면 안됩니다
재매수후 가격이 내려가면 청산선이나 로스컷에서 청산이 될꺼구
재매수후 가격이 좀 더 올라가면 macd양봉으로 전환 될껍니다
양봉 전환이 되면 같은 조건으로 시스템이 돌아가서 macd오실 음봉이 되면
청산을 하고 조건값에 의해 재매수가 되어져야 하겠습니다
5틱은 외부변수로 시물레이션 가능 했으면 하구요
이때 현재가격은 청산이평선과 로스컷 가격 보다 최소 3틱은 위에 있어야 재매수 되어져야 하구요
이 최소틱도 외부변수로 시물레이션 가능 했으면 하구요
아 그리고 매수후 이조건에서 반복하지 말고
macd오실 음봉청산후 위에 이야기 한거 처럼 계속 반복하지 않고
5틱 아래서나 macd오실 양봉전환 매수 1회만 재 매수 하고 청산까지
가지고 가는것도 좀 부탁 드립니다
너무 죄송합니다 ^^
input : rsiPeriod(4), RSVValue(56);
input : maPeriod1(21),maPeriod2(25),maPeriod3(31), maPeriod4(57);
input : Vol(970);
input : 간격(0.15);
input : LossPoint(1.05);
input : ProfitPoint(2.35);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
#최초 매수조건
if MarketPosition == 0 and
V > Vol
&& MAv1 > MAv2
&& MAv2 > MAv3
&& MAv3 > MAv4
&& RSV > RSVValue
&& MAv2 - MAv4 <= 간격
&& C > MAv4
Then
{
Buy("최초매수", OnClose, DEF);
Condition1 = true;
}
# 반복매수조건
if Condition1 == true and CrossUp(MACDO,0) Then
buy("반복매수");
#반복매수청산조건
if CrossDown(MACDO,0) Then
exitlong("반복청산");
//종가가 MAv4보다 작으면 매수청산
if C < MAv4 Then {
Exitlong("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == 1 Then{
ExitLong("손절",AtStop,EntryPrice-Losspoint);
ExitLong("목표",AtLimit,EntryPrice+Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
다음글
이전글