커뮤니티
수식 요청 드립니다.
2015-09-24 11:43:22
137
글번호 90670
수식 요청 드립니다.
1.예스랭귀지로 작성 사용중인 "선물 시스템명 A-01"을 예스스팟을 이용 미니선물
신호로 전환 사용할수 있는 데이용 과 오버형 두가지 수식요청드립니다.
(예스스팟으로 시스템 전환시 시스템명만 적용하면 되는지 전체수식을 적용해야 하는지요?)
2. 아래수식에서 처음신호 발생봉 종가 기준으로
첫신호가 수익일경우
-> 처음 수익을 제외한 당일손실제한 강제청산
첫신호가 손실일경우
처음 손실을 포함한 당일손실제한 강제청산
수식 으로 변경요청 드립니다.
input :N(2),당일손실(-1.5);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0);
NP = NetProfit;
if date != date[1] Then
preNP = NP[1];
dayPL = NP-PreNP;
BCount = 0 ;
SCount = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then
BCount = BCount + 1;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then
SCount = SCount + 1;
}
//------------------------------------------------------------------------
if MarketPosition == 1 Then{
ExitLong("당일손실제한bx3",AtStop,EntryPrice+당일손실-dayPL);
}
if MarketPosition == -1 Then{
ExitShort("당일손실제한sx3",AtStop,EntryPrice-당일손실+daypl );
}
//--------------------------------------------------------------------------------------
if MarketPosition == -1 and crossup(H,EntryPrice+0.5) and BCount+SCount < N and dayPL > 당일손실 Then
buy("1BX");
if MarketPosition == 1 and CrossDown(L,EntryPrice-0.5) and BCount+SCount < N and dayPL > 당일손실 Then
sell("1SX");
//--------------------------------------------------------------------------------------
감사합니다.
답변 1
예스스탁 예스스탁 답변
2015-09-24 13:59:48
안녕하세요
예스스탁입니다.
1.
예스스팟은 시스템식의 이용은
예스랭귀지의 시스템식 내용 자체를 예스스팟 코드로 변경하는 것이 아닙니다.
해당 시스템은 차트에 적용하고
해당 차트에서 신호가 발생하면
스팟에서 감지해 주문을 내는 것입니다.
차트에서 신호가 발생하면 지정한 종목으로 주문내는 식은 아래와 같습니다.
객체 설정방법등은 예스스팟 도움말 참고하시기 바랍니다.
스크립트 객체화면에서
차트객체 추가 --> 객체명은 Chart,"시스템명 A-01"이 적용된 차트에 아이디 부여하고 동일아이디를 지정
계좌객체 추가 --> 객체명은 Account1, 주문낼 계좌번호 지정
종목객체 추가 --> 객체명은 MarketData1, 미니선물로 지정
//차트에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
//매수포지션 청산신호 발생
if (Signal.signalKind == 2)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 진입신호 발생
if (Signal.signalKind == 3)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 포지션 청산신호 발생
if (Signal.signalKind == 4)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
}
2
input :N(2),당일손실(-1.5);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
}
dayPL = NP-PreNP;
BCount = 0 ;
SCount = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then
BCount = BCount + 1;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then
SCount = SCount + 1;
}
if Bcount+Scount == 1 and TotalTrades > TotalTrades[1] Then{
if PositionProfit(1) > 0 Then{
Condition1 = true;
var1 = PositionProfit(1);
}
}
//------------------------------------------------------------------------
if MarketPosition == 1 Then{
if Condition1 == false Then
loss = EntryPrice+당일손실-dayPL;
Else
loss = EntryPrice+당일손실-(dayPL-var1);
ExitLong("당일손실제한bx3",AtStop,Loss);
}
if MarketPosition == -1 Then{
if Condition1 == false Then
loss = EntryPrice-당일손실+dayPL;
Else
loss = EntryPrice-당일손실+(dayPL-var1);
ExitShort("당일손실제한sx3",AtStop,loss );
}
//--------------------------------------------------------------------------------------
if MarketPosition == -1 and crossup(H,EntryPrice+0.5) and BCount+SCount < N and dayPL > 당일손실 Then
buy("1BX");
if MarketPosition == 1 and CrossDown(L,EntryPrice-0.5) and BCount+SCount < N and dayPL > 당일손실 Then
sell("1SX");
//--------------------------------------------------------------------------------------
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식 요청 드립니다.
> 수식 요청 드립니다.
1.예스랭귀지로 작성 사용중인 "선물 시스템명 A-01"을 예스스팟을 이용 미니선물
신호로 전환 사용할수 있는 데이용 과 오버형 두가지 수식요청드립니다.
(예스스팟으로 시스템 전환시 시스템명만 적용하면 되는지 전체수식을 적용해야 하는지요?)
2. 아래수식에서 처음신호 발생봉 종가 기준으로
첫신호가 수익일경우
-> 처음 수익을 제외한 당일손실제한 강제청산
첫신호가 손실일경우
처음 손실을 포함한 당일손실제한 강제청산
수식 으로 변경요청 드립니다.
input :N(2),당일손실(-1.5);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0);
NP = NetProfit;
if date != date[1] Then
preNP = NP[1];
dayPL = NP-PreNP;
BCount = 0 ;
SCount = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then
BCount = BCount + 1;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then
SCount = SCount + 1;
}
//------------------------------------------------------------------------
if MarketPosition == 1 Then{
ExitLong("당일손실제한bx3",AtStop,EntryPrice+당일손실-dayPL);
}
if MarketPosition == -1 Then{
ExitShort("당일손실제한sx3",AtStop,EntryPrice-당일손실+daypl );
}
//--------------------------------------------------------------------------------------
if MarketPosition == -1 and crossup(H,EntryPrice+0.5) and BCount+SCount < N and dayPL > 당일손실 Then
buy("1BX");
if MarketPosition == 1 and CrossDown(L,EntryPrice-0.5) and BCount+SCount < N and dayPL > 당일손실 Then
sell("1SX");
//--------------------------------------------------------------------------------------
감사합니다.
다음글
이전글