var : cnt(0),N(0);
if date != date[1] then
cnt = 0;
==================================================================
==> 날짜가 바뀌면 cnt를 초기화하는것으로 보이네요 이것은 이렇게
if stime == 090000 then {cnt =0;}
==================================================================
if sTime == 150000 Then{
var3=c;
if NextBarOpen >= var3*1.02 then
var1=1;
}
==================================================================
==> 이것은 전날 종가를 var3로 저장하고 다음날 갭상이 발생되어 2%이상 발생하면 var1에 1을 설정한다.
if (DayOpen >= DayClose(1)*1.02) then { var1 =1;}
==================================================================
if var1==1 Then {
if crossup(o,DayOpen) Then
buy("b",AtMarket);
}
==================================================================
==> 이식은 문제 될거 없네요
==================================================================
if MarketPosition == 1 and IsEntryName("B") == True Then{
if avgEntryPrice*1.05>=o and crossup(o,EntryPrice*1.02) then
ExitLong("1",AtStop,EntryPrice*1.01);
if avgEntryPrice*1.1>=o and Crossup(o,EntryPrice*1.07) Then
ExitLong("5",AtStop,EntryPrice*1.05);
cnt = cnt +1;
}
if MarketPosition == 1 Then{
var4 = CurrentContracts;
var5 = (var4*0.5);
}
if cnt<=0 then{
if time==150000 Then //파생거래하는 것은 150000이어도 되지만 주식일경우 거래는 144800으로 적어줘야할거같네요.
ExitLong("50%",AtMarket,var5);
}
==================================================================
==> 이식에서 문제가 되네요 cnt <= 0 일경우는 당일 첫봉에 해당되는데 time이 150000이므로.... 반응을 안하는거 같네요
==================================================================
if MarketPosition == 1 and
stime == 145900 then {
ExitLong("50%",AtMarket,var5);
}
위의 식을 필요없는 변수 빼고 다시 쓰면
if (DayOpen >= DayClose(1)*1.02) then { var1 =1;}
if var1==1 and
crossup(o,DayOpen) Then {
buy("b",AtMarket);
}
if MarketPosition == 1 and IsEntryName("B") == True Then {
if avgEntryPrice*1.05>=o and crossup(o,EntryPrice*1.02) then {
ExitLong("1",AtStop,EntryPrice*1.01);
}
if avgEntryPrice*1.1>=o and Crossup(o,EntryPrice*1.07) Then {
ExitLong("5",AtStop,EntryPrice*1.05);
}
}
if MarketPosition == 1 Then{
var2 = int(CurrentContracts*0.5); // 정수화시킨다
}
if MarketPosition == 1 and
stime == 145900 then { //파생거래하는 것은 150000이어도 되지만 주식일경우 거래는 144800으로 적어줘야할거같네요.
ExitLong("50%",AtMarket,var2);
}
그냥 검증안하고 수정해서 올립니다. 한번 확인해보세요.
> hippomom 님이 쓴 글입니다.
> 제목 : 청산...
> 1분봉으로 매매해서 전날보다 갭상승2%이상이면 오늘 매수 하고 당일 청산이 되지 않은경우 수량을 50%는 줄인다 는 수식이 뭐가틀린지 잘모르겠네요 ...고쳐주세요..
var : cnt(0),N(0);
if date != date[1] then
cnt = 0;
if sTime == 150000 Then{
var3=c;
if NextBarOpen >= var3*1.02 then
var1=1;
}
if var1==1 Then {
if crossup(o,DayOpen) Then
buy("b",AtMarket);
}
if MarketPosition == 1 and IsEntryName("B") == True Then{
if avgEntryPrice*1.05>=o and crossup(o,EntryPrice*1.02) then
ExitLong("1",AtStop,EntryPrice*1.01);
if avgEntryPrice*1.1>=o and Crossup(o,EntryPrice*1.07) Then
ExitLong("5",AtStop,EntryPrice*1.05);
cnt = cnt +1;
}
if MarketPosition == 1 Then{
var4 = CurrentContracts;
var5 = (var4*0.5);
}
if cnt<=0 then{
if time==150000 Then
ExitLong("50%",AtMarket,var5);
}
> 캐빈이야 님이 쓴 글입니다.
> 제목 : Re : 청산...
> var : cnt(0),N(0);
if date != date[1] then
cnt = 0;
==================================================================
==> 날짜가 바뀌면 cnt를 초기화하는것으로 보이네요 이것은 이렇게
if stime == 090000 then {cnt =0;}
==================================================================
if sTime == 150000 Then{
var3=c;
if NextBarOpen >= var3*1.02 then
var1=1;
}
==================================================================
==> 이것은 전날 종가를 var3로 저장하고 다음날 갭상이 발생되어 2%이상 발생하면 var1에 1을 설정한다.
if (DayOpen >= DayClose(1)*1.02) then { var1 =1;}
==================================================================
if var1==1 Then {
if crossup(o,DayOpen) Then
buy("b",AtMarket);
}
==================================================================
==> 이식은 문제 될거 없네요
==================================================================
if MarketPosition == 1 and IsEntryName("B") == True Then{
if avgEntryPrice*1.05>=o and crossup(o,EntryPrice*1.02) then
ExitLong("1",AtStop,EntryPrice*1.01);
if avgEntryPrice*1.1>=o and Crossup(o,EntryPrice*1.07) Then
ExitLong("5",AtStop,EntryPrice*1.05);
cnt = cnt +1;
}
if MarketPosition == 1 Then{
var4 = CurrentContracts;
var5 = (var4*0.5);
}
if cnt<=0 then{
if time==150000 Then //파생거래하는 것은 150000이어도 되지만 주식일경우 거래는 144800으로 적어줘야할거같네요.
ExitLong("50%",AtMarket,var5);
}
==================================================================
==> 이식에서 문제가 되네요 cnt <= 0 일경우는 당일 첫봉에 해당되는데 time이 150000이므로.... 반응을 안하는거 같네요
==================================================================
if MarketPosition == 1 and
stime == 145900 then {
ExitLong("50%",AtMarket,var5);
}
위의 식을 필요없는 변수 빼고 다시 쓰면
if (DayOpen >= DayClose(1)*1.02) then { var1 =1;}
if var1==1 and
crossup(o,DayOpen) Then {
buy("b",AtMarket);
}
if MarketPosition == 1 and IsEntryName("B") == True Then {
if avgEntryPrice*1.05>=o and crossup(o,EntryPrice*1.02) then {
ExitLong("1",AtStop,EntryPrice*1.01);
}
if avgEntryPrice*1.1>=o and Crossup(o,EntryPrice*1.07) Then {
ExitLong("5",AtStop,EntryPrice*1.05);
}
}
if MarketPosition == 1 Then{
var2 = int(CurrentContracts*0.5); // 정수화시킨다
}
if MarketPosition == 1 and
stime == 145900 then { //파생거래하는 것은 150000이어도 되지만 주식일경우 거래는 144800으로 적어줘야할거같네요.
ExitLong("50%",AtMarket,var2);
}
그냥 검증안하고 수정해서 올립니다. 한번 확인해보세요.
> hippomom 님이 쓴 글입니다.
> 제목 : 청산...
> 1분봉으로 매매해서 전날보다 갭상승2%이상이면 오늘 매수 하고 당일 청산이 되지 않은경우 수량을 50%는 줄인다 는 수식이 뭐가틀린지 잘모르겠네요 ...고쳐주세요..
var : cnt(0),N(0);
if date != date[1] then
cnt = 0;
if sTime == 150000 Then{
var3=c;
if NextBarOpen >= var3*1.02 then
var1=1;
}
if var1==1 Then {
if crossup(o,DayOpen) Then
buy("b",AtMarket);
}
if MarketPosition == 1 and IsEntryName("B") == True Then{
if avgEntryPrice*1.05>=o and crossup(o,EntryPrice*1.02) then
ExitLong("1",AtStop,EntryPrice*1.01);
if avgEntryPrice*1.1>=o and Crossup(o,EntryPrice*1.07) Then
ExitLong("5",AtStop,EntryPrice*1.05);
cnt = cnt +1;
}
if MarketPosition == 1 Then{
var4 = CurrentContracts;
var5 = (var4*0.5);
}
if cnt<=0 then{
if time==150000 Then
ExitLong("50%",AtMarket,var5);
}
예스스탁
예스스탁 답변
2009-09-14 11:36:11
안녕하세요
예스스탁입니다.
수량의 반으로 나우실때 소숫점이 있을 수 있으므로
int함수를 이용하여 정수값만 가질수 있도록 해주셔야 합니다.
청산함수의 수량은 5번째 매개변수입니다.
청산식을 수정했습니다.
if MarketPosition == 1 and stime == 150000 Then{
var4 = CurrentContracts;
var5 = int(var4*0.5);
ExitLong("50%",AtMarket,def,"",var5,1);
}
즐거운 하루되세요
> hippomom 님이 쓴 글입니다.
> 제목 : 청산...
> 1분봉으로 매매해서 전날보다 갭상승2%이상이면 오늘 매수 하고 당일 청산이 되지 않은경우 수량을 50%는 줄인다 는 수식이 뭐가틀린지 잘모르겠네요 ...고쳐주세요..
var : cnt(0),N(0);
if date != date[1] then
cnt = 0;
if sTime == 150000 Then{
var3=c;
if NextBarOpen >= var3*1.02 then
var1=1;
}
if var1==1 Then {
if crossup(o,DayOpen) Then
buy("b",AtMarket);
}
if MarketPosition == 1 and IsEntryName("B") == True Then{
if avgEntryPrice*1.05>=o and crossup(o,EntryPrice*1.02) then
ExitLong("1",AtStop,EntryPrice*1.01);
if avgEntryPrice*1.1>=o and Crossup(o,EntryPrice*1.07) Then
ExitLong("5",AtStop,EntryPrice*1.05);
cnt = cnt +1;
}
if MarketPosition == 1 Then{
var4 = CurrentContracts;
var5 = (var4*0.5);
}
if cnt<=0 then{
if time==150000 Then
ExitLong("50%",AtMarket,var5);
}