예스스탁
예스스탁 답변
2022-08-09 09:36:18.0
안녕하세요? 예스스탁입니다.
사용하시는 증권사에 전일 접속 장애가 있어서 발생된 문제인 것으로 보입니다.
금일 새벽에 정상화 되었는데, 현재는 예스스팟 사용에 문제가 없을 것으로 보입니다.
혹시 문제가 있으면 예스스탁으로 연락을 부탁드리겠습니다.
02-3453-1060 : 프로그램사용법Q&A담당자
감사합니다.
> 로봇짱 님이 쓴 글입니다.
> 제목 : 해당 서비스를 찾을수 없습니다.... 라고 뜹니다.
> 안녕하세요. 언제나 친절한 답변에 감사드립니다.
지난 주까지 아무 문제 없던 수식이 변한게 아무것도 없는데 오늘 해보니 안됩니다.
"해당 서비스를 찾을수 없습니다."라는 오류 메세지가 뜹니다. 확인 부탁드립니다.
(실행 수식)
////////////// 손잡이부
var tableEreum="GOLD"; // 마리아디비 테이블 이름 - 종목별.
var jjBonNaMicro=2; // 종목- 1 주종목이냐 2 마이크로냐
var jnibSuryang=2; // 수동 진입 수량 - 매일 아침 - 종목별.
var CHg01_soDongTick=0.1; // 한국 예스트레이더 준 소동틱 pricescale - 손잡이 - 종목별.
// // - 한국, 미국 소동틱이 다를때 한국 예스트레이더 준 소동틱하면 됨. // 골드 0.1, 유로 0.00005
var CHg01_soDongTick_sosuJum_jarisu=1; // 한국 예스트레이더 준 소동틱 pricescale 자릿수 // 오일 2, 골드 1, 유로 5
var hengGaC_duCegyulRo_uMoo=1; // 행가씨를 더 적극적 체결로 하느냐 마느냐
var jnib_micegyulSi_orderReplaceHu=1; // 1 진입 주문 미체결시 따라가는 주문 정정, 0 해당 주문 취소
var jnib_jumunHoo_orderReplace_jacBongSu=14*4;
// / 손잡이- 1틱 마다 갱신되는
var tal_jumunHoo_orderReplace_jacBongSu=14*4; // 손잡이- 1틱 마다 갱신되는 / 오일 14틱인데 그게 30봉 정도면 / 20이었다.
var talJumunSiTalGa_domang_orderReplace_tickGesu=5;
// / 오일, 골드=18 / 유로=16 // 좌 이었는데 장전개수 +6개로 // 미8실시 골드 5개로 함.
var jumunGa_bojungHu=1;
var talHeureum1Si_reFreshHu=1;
var heureumBhDoinCho1HooDasiRefreshBongSu=100; // 적당한 간격
//////////////
var kkuenHooBongSu=0;
var hhGejwaBun=0;
var hhGejwaCongGeum=0;
var hhGnSuryang=0;
var choKkuenheureum=1;
var sql_rra=0;
var sqlsel*ct="0";
var sql_rra_ibjangGo=new Array();
var fieldCountVV=0;
var roundSiGobSu=0;
var jumun_jangjun_gesu=0;
var tal_jangjun_gesu=0;
var jnib_cGanChaInjungGesu=100; // 줄리아 종가와 예스트레이더 차트 종가간 차이 인정개수 - 보통 4,8
var jumunJoonCode="0";
var sqlsel*ct="0";
var sql_rra=0;
var hhJuliaGiC=0;
var hhJuliaIbjangJ1=0;
var hhJuliaIbjang=0;
var hhJuliaIbjangBhBs=0;
var hhJuliaIbjangSiJuliaGi=0;
var hhJuliaIbjangSiJuliaC=0;
var hhJJc=0;
var hhJnibJumungaC=0;
var hhJuliaCganCha=0;
var ibjang=0;
var ibjangBhBs=0;
var ibjangBhBsSiC=0;
var jn_jumunHoo_bongSu=0;
var unfill_orderNum=0;
var hhBalanceCount=0;
var orderIDvv=0;
var orderIDvvJ1=0;
var orderCountVV=0;
var juliaYesEumyangIlchi=0;
var talHeureum=0;
var hhBalanceCode="";
var hhBalanceCount=0;
var hhBalanceIbjang=0;
var hhDocDoinIbjangGoAnneBun=0;
var ibjangGoSeHengOn=0;
var heureumJoongheureum=0;
var heureumJoongheureumTal=0;
var orderId_1=0;
var orderId_81=0;
var orderId_jn_replace=0;
var orderId_810=0;
var orderId_10=0;
var orderId_tal_replace=0;
var orderId_1_orderNum=0;
var orderId_81_orderNum=0;
var orderId_jn_replace_orderNum=0;
var orderId_810_orderNum=0;
var orderId_10_orderNum=0;
var orderId_tal_replace_orderNum=0;
var hhUnfillOrder=0;
var hhTalJumunGaC=0;
var talJumunHyang=0;
var tal_jumunHoo_bongSu=0;
var jnibNalHu=1; // 날진입허가 - 줄리아의 범위보다 넓게 하는게 원칙 // 중간에 허가 무 0 될 수 있음.
var isNormalVV=false;
var orderNumVV=-1004;
var hhibjangJoon_unfillOrderNum=0;
var talHeureumHu_sqlDasiDocUmu=2;
var onupd*teAccount_doin=0;
var heureumBhDoinCho=0;
var hhTonggwaJoong=0;
var hhTalJumunGaCwaMarketCcha=0;
var talJumunSiTalGac=0;
var talJumunSiTalGac_wa_hhC_cha=0;
var taljumunHoo_domang_orderReplace_ryung=0;
var juliaIbjangYucHyangRyung=0;
var tal_jangjun_gesuGyul=0;
var jumun_jangjun_gesu_juliaBhBsSi=0;
var hhTalJumunGaCwaMarketCchaGesu=0;
var order_errorMessage="";
var talHeureum2HooBongSu=0;
var jn_jumunHoo_orderJe_hoisu=0;
var ibjang100HooBongSu=0;
var heureumBhDoinCho1HooBongSu=0;
var hhAskC=0;
var hhBidC=0;
var hhCurrentC=0;
var hhAsk2C=0;
var hhBid2C=0;
var hhMarketJoongGaC=0;
var hhAskHengGaC=0;
var hhBidHengGaC=0;
var hhAskC1GanGaC=0;
var hhBidC1GanGaC=0;
var julia_gyotong=0;
function Main_OnStart()
{
Main.MessageList("AD ibjang heng sijac.");
////////////// 반올림 보정시 사용되는
roundSiGobSu=1/CHg01_soDongTick; // 오일준 100.0
roundSiGobSu=Math.round(roundSiGobSu);
Main.MessageList("계좌번호=",hhGejwaBun);
}
//////////////////////////
function Chart1_OnBarAppended(nData)
{
if (nData==1){
hhTonggwaJoong=0;
kkuenHooBongSu+=1;
hhJJc=Chart1.GetClose(nData,0);
hhAskC=MarketData1.Ask(1);
hhBidC=MarketData1.Bid(1);
hhCurrentC=MarketData1.current;
////////////////// 주문가 상시 마련
hhAsk2C=MarketData1.Ask(2);
hhBid2C=MarketData1.Bid(2);
hhMarketJoongGaC=(hhAsk2C+hhBid2C)*0.5;
hhAskHengGaC=Math.ceil(hhMarketJoongGaC);
hhBidHengGaC=Math.floor(hhMarketJoongGaC);
/*
hhAskC1GanGaC=hhAskC-(CHg01_soDongTick);
hhBidC1GanGaC=hhBidC+(CHg01_soDongTick);
hhAskC1GanGaC=hhAskC1GanGaC.toFixed(CHg01_soDongTick_sosuJum_jarisu);
hhBidC1GanGaC=hhBidC1GanGaC.toFixed(CHg01_soDongTick_sosuJum_jarisu);
*/
////////// 실행가 보정
/*
if (hhAskHengGaChhBidC1GanGaC){
hhBidHengGaC=hhBidC1GanGaC;
}
*/
////////// 행가씨 더 체결로 보정
if (hengGaC_duCegyulRo_uMoo==1 && hhMarketJoongGaC%CHg01_soDongTick!=0){ // 이때만 보정함
hhAskHengGaC=hhAskHengGaC-CHg01_soDongTick;
hhBidHengGaC=hhBidHengGaC+CHg01_soDongTick;
}
hhAskHengGaC=hhAskHengGaC.toFixed(CHg01_soDongTick_sosuJum_jarisu); // 결.
hhBidHengGaC=hhBidHengGaC.toFixed(CHg01_soDongTick_sosuJum_jarisu); // 결.
//////////////////
if (choKkuenheureum==1){
hhTonggwaJoong=1;
////////////////// 일반 종목, 마이크로 종목에 따라
if (jjBonNaMicro==1){
jumunJoonCode=Chart1.GetCode(1); // AD_ibjang_JJGOLD
} else if (jjBonNaMicro==2){
jumunJoonCode=Chart2.GetCode(1); // AD_ibjang_JJGOLDm
}
sqlsel*ct="count(ANNE) from ";
sqlsel*ct+=tableEreum;
sqlsel*ct+=";";
// Main.MessageList("sqlsel*ct=",sqlsel*ct);
DataBase1.sel*ct(sqlsel*ct,"AD");
sql_rra=DataBase1.GetFieldValue(0); // 첫 번째 컬럼이 0 임.
// Main.MessageList("sql_rra=",sql_rra);
if (sql_rra>=1){
////////////// 포지션고 읽기
sqlsel*ct="* from ";
sqlsel*ct+=tableEreum;
sqlsel*ct+=" ORDER BY ANNE DESC LIMIT 1;";
// Main.MessageList("sqlsel*ct=",sqlsel*ct);
DataBase1.sel*ct(sqlsel*ct,"AD");
fieldCountVV=DataBase1.GetFieldCount();
for (var i=0; i<=fieldCountVV-1; i++){
sql_rra_ibjangGo[i]=DataBase1.GetFieldValue(i); // 결. 배열에 마지막 행 배치한.
}
////////////// 줄리아 포지션 1식 발령시만 흐름 부여
if (Math.abs(sql_rra_ibjangGo[5])==1){
choKkuenheureum=2; // 실시간 포지션 수출이 시작됐으면 흐름 2 영구 부여.
////////////// hhDocDoinIbjangGoAnneBun - 이 부분이 있어서 에이디 참 합동 매매 가능함.
hhDocDoinIbjangGoAnneBun=sql_rra_ibjangGo[0]-1;
}
}
Main.MessageList("kkuenHooBongSu=",kkuenHooBongSu," hhBalanceCount=",hhBalanceCount," ibjang=",ibjang," ibjangBhBs=",ibjangBhBs," jumunJoonCode=",jumunJoonCode," hhTonggwaJoong=",hhTonggwaJoong," talHeureum=",talHeureum," hhDocDoinIbjangGoAnneBun=",hhDocDoinIbjangGoAnneBun);
}
if (choKkuenheureum==2){
hhTonggwaJoong=2;
////////////// 순환 앞일
// Main.MessageList("isNormalVV=",isNormalVV);
ibjangBhBs=0; // 처리일
//
////////////// 포지션고 읽기
sqlsel*ct="* from ";
sqlsel*ct+=tableEreum;
sqlsel*ct+=" ORDER BY ANNE DESC LIMIT 1;";
// Main.MessageList("sqlsel*ct=",sqlsel*ct);
DataBase1.sel*ct(sqlsel*ct,"AD");
fieldCountVV=DataBase1.GetFieldCount();
for (var i=0; i<=fieldCountVV-1; i++){
sql_rra_ibjangGo[i]=DataBase1.GetFieldValue(i); // 결. 배열에 마지막 행 배치한.
}
hhTonggwaJoong=21;
////////////// 포지션고 새행 온 변수 발령
ibjangGoSeHengOn=0;
if (sql_rra_ibjangGo[0]!=hhDocDoinIbjangGoAnneBun){
ibjangGoSeHengOn=1004; // 줄리아 포지션 새 포지션 발령 1004 부여
hhDocDoinIbjangGoAnneBun=sql_rra_ibjangGo[0];
hhTonggwaJoong=22;
}
// Main.MessageList("줄리아 포지션고 새행 온 ibjangGoSeHengOn=",ibjangGoSeHengOn);
//
////////////// 줄리아 포지션 파악 변발부
hhJuliaIbjangBhBs=0; // 처리일
jumun_jangjun_gesu=0; // 처리일
if (ibjangGoSeHengOn==1004){
hhTonggwaJoong=31;
//////// 변발 산출
hhJuliaIbjangJ1=hhJuliaIbjang;
hhJuliaIbjangBhBs=sql_rra_ibjangGo[5]; // 결. 줄리아 포지션변발 갱신.
hhJuliaIbjang=sql_rra_ibjangGo[6]; // 결. 줄리아 포지션 갱신.
jumun_jangjun_gesu=sql_rra_ibjangGo[7];
jumun_jangjun_gesu_juliaBhBsSi=sql_rra_ibjangGo[7];
julia_gyotong=sql_rra_ibjangGo[10];
//////// 줄리아 포지션 변발부
if (Math.abs(hhJuliaIbjangBhBs)==1){
hhJuliaIbjangSiJuliaGi=sql_rra_ibjangGo[4]; // SANSI_GI
hhJuliaIbjangSiJuliaC=hhJuliaIbjangSiJuliaGi*CHg01_soDongTick; // C 가 된.
} else if (Math.abs(hhJuliaIbjangBhBs)==10){
hhJuliaIbjangSiJuliaGi=sql_rra_ibjangGo[4]; // SANSI_GI
hhJuliaIbjangSiJuliaC=hhJuliaIbjangSiJuliaGi*CHg01_soDongTick; // C 가 된.
}
}
////////////// 새행 왔는데 미체결 남아 있을시 취소하는
/*
if (ibjangGoSeHengOn==1004){
if (Math.abs(ibjang)==100){
Account1.SetBalanceItem(jumunJoonCode,0);
////////// 미체결
hhUnfillOrder=Account1.SetUnfillOrderNumber(orderNumVV);
unfill_orderNum=Account1.Unfill.orderNum;
hhBalanceCount=Account1.Balance.count; // 결. 현재 잔고 수량.
hhBalanceIbjang=Account1.Balance.position;
if (hhBalanceCount==0){
ibjang=0;
hhTonggwaJoong=3001;
Account1.OrderCancel(unfill_orderNum);
}
}
}
*/
// Main.MessageList("줄리아 포지션변발 hhJuliaIbjangBhBs=",hhJuliaIbjangBhBs);
//
//////////////////////////// 본격
if (talHeureum==0){
hhTonggwaJoong=9999;
if (ibjang==0){ // 포지션 0 시
hhTonggwaJoong=10000;
Account1.SetUnfillOrderNumber(orderNumVV); // 미체결
hhibjangJoon_unfillOrderNum=Account1.Unfill.orderNum;
////////////// 마지막 행 읽은 이후
hhJuliaGiC=sql_rra_ibjangGo[4]*CHg01_soDongTick;
hhJuliaGiC=hhJuliaGiC.toFixed(CHg01_soDongTick_sosuJum_jarisu);
hhJuliaCganCha=hhJJc-hhJuliaGiC;
//////////////
Account1.SetBalanceItem(jumunJoonCode,0);
hhBalanceCount=Account1.Balance.count;
if (Math.abs(hhJuliaCganCha)<=CHg01_soDongTick*jnib_cGanChaInjungGesu && hhBalanceCount==0 && julia_gyotong==1004){
// 줄리아 산시기(종가) 와 차이가 인정개수 이내여야만 통과
hhTonggwaJoong=10010;
if (hhJuliaIbjangBhBs==1 && jnibNalHu==1){ // 상방 진입
hhTonggwaJoong=10001;
jn_jumunHoo_bongSu=1;
ibjang=10; // 결. 포지션 부여.
ibjangBhBs=10;
/*
hhJnibJumungaC=hhJuliaIbjangSiJuliaC-(CHg01_soDongTick*jumun_jangjun_gesu); // 진입 장전가
////////////////// hhJnibJumungaC 보정
if (jumunGa_bojungHu==1){
if (hhJnibJumungaC>hhBidC){
hhJnibJumungaC=hhBidC+(CHg01_soDongTick*1);
}
}
hhJnibJumungaC=hhJnibJumungaC.toFixed(CHg01_soDongTick_sosuJum_jarisu);
*/
hhJnibJumungaC=hhBidHengGaC;
Main.MessageList("상방 진입 주문하는");
orderId_1=Account1.OrderBuy(jumunJoonCode,jnibSuryang,hhJnibJumungaC,2); // 결. 진입 주문 접수.
} else if (hhJuliaIbjangBhBs==-1 && jnibNalHu==1){ // 하방 진입
hhTonggwaJoong=10002;
jn_jumunHoo_bongSu=1;
ibjang=-10; // 결. 포지션 부여.
ibjangBhBs=-10;
/*
hhJnibJumungaC=hhJuliaIbjangSiJuliaC+(CHg01_soDongTick*jumun_jangjun_gesu); // 진입 장전가
////////////////// hhJnibJumungaC 보정
if (jumunGa_bojungHu==1){
if (hhJnibJumungaC=heureumBhDoinCho1HooDasiRefreshBongSu){
heureumBhDoinCho1HooBongSu=1;
Account1.Refresh();
}
//////////////
if (onupd*teAccount_doin==1){
hhTonggwaJoong=1002;
Account1.SetBalanceItem(jumunJoonCode,0);
////////// 미체결
hhUnfillOrder=Account1.SetUnfillOrderNumber(orderNumVV);
unfill_orderNum=Account1.Unfill.orderNum;
unfill_count=Account1.Unfill.count; // 미체결
hhBalanceCount=Account1.Balance.count; // 결. 현재 잔고 수량.
hhBalanceIbjang=Account1.Balance.position;
if (hhBalanceCount>=1 && hhBalanceCount==jnibSuryang){ // 전량 체결시 - 포지션 다음 1000으로
hhTonggwaJoong=1003;
ibjang=ibjang*10; // 포지션 1000 된.
ibjangBhBs=ibjang;
heureumBhDoinCho=1;
heureumBhDoinCho1HooBongSu=1;
} else if (hhBalanceCount=jnib_jumunHoo_orderReplace_jacBongSu){ // 미체결 유시 // 손잡이 16봉
hhTonggwaJoong=10040;
if (jnib_micegyulSi_orderReplaceHu==0){ // 0 해당 주문 취소 갈래
if (hhBalanceCount==0){ // 전체 물량 미체결시
hhTonggwaJoong=1004;
ibjang=0;
// jnibNalHu=0; // 이 경우 이 날은 진입 허가 무 처리
} else if (hhBalanceCount>=1){ // 일부 물량은 체결시
ibjang=ibjang*10; // 포지션 1000 된.
ibjangBhBs=ibjang;
heureumBhDoinCho=1;
heureumBhDoinCho1HooBongSu=1;
}
hhTonggwaJoong=1005;
Main.MessageList("포지션 100에서 미체결되어 취소 넣은");
Account1.OrderCancel(unfill_orderNum);
} else if (jnib_micegyulSi_orderReplaceHu==1){ // 1 진입 주문 미체결시 따라가는 주문 정정
if (hhBalanceCount==0){ // 전체 물량 미체결시
hhTonggwaJoong=1006;
jn_jumunHoo_bongSu=0;
////////////// mi7Heng_bn 준으로 진입정정가씨 마련
if (ibjang>0){
hhJnibJumungaC=hhBidHengGaC;
} else if (ibjang<0){
hhJnibJumungaC=hhAskHengGaC;
}
// hhJnibJumungaC=hhJnibJumungaC.toFixed(CHg01_soDongTick_sosuJum_jarisu);
//////////////
if (jn_jumunHoo_orderJe_hoisu<=3){
jn_jumunHoo_orderJe_hoisu+=1;
orderId_jn_replace=Account1.OrderReplace(unfill_orderNum,unfill_count,hhJnibJumungaC);
} else {
ibjang=0;
jn_jumunHoo_orderJe_hoisu=0;
}
} else if (hhBalanceCount>=1){ // 일부 물량은 체결시
ibjang=ibjang*10; // 포지션 1000 된.
ibjangBhBs=ibjang;
heureumBhDoinCho=1;
heureumBhDoinCho1HooBongSu=1;
Main.MessageList("포지션 100에서 일부 체결되고 일부 미체결되어 일부를 취소 넣은");
Account1.OrderCancel(unfill_orderNum);
}
}
} else if (ibjang100HooBongSu>=jnib_jumunHoo_orderReplace_jacBongSu){
heureumBhDoinCho=1; // 다시 부여
heureumBhDoinCho1HooBongSu=1;
jn_jumunHoo_bongSu=0;
}
}
/////////////////// 줄리아 포지션 바뀌었는지 확인
/*
juliaYesEumyangIlchi=sql_rra_ibjangGo[6]*ibjang;
if (juliaYesEumyangIlchi<=0 && Math.abs(ibjang)==100){ // 포지션 1000이 못 됐을시만 통과
if (juliaYesEumyangIlchi<0){ // 줄리아 포지션 역향 발령시
hhDocDoinIbjangGoAnneBun-=1; // 줄리아고 행 다시 읽기 가능 부여
}
Main.MessageList("예스스팟 포지션 100 중, 포지션 반대 전환을 위해 취소 접수 넣은");
ibjang=0;
Account1.OrderCancel(unfill_orderNum);
}
*/
} else if (Math.abs(ibjang)==1000){ // 진입 성공하여 진행중
if (heureumBhDoinCho==1){
heureumBhDoinCho=0;
onupd*teAccount_doin=0;
Account1.Refresh();
}
//////////////
heureumBhDoinCho1HooBongSu+=1;
if (heureumBhDoinCho1HooBongSu>=heureumBhDoinCho1HooDasiRefreshBongSu && onupd*teAccount_doin==0){
heureumBhDoinCho1HooBongSu=1;
Account1.Refresh();
}
if (onupd*teAccount_doin==1){
/////////////////// 줄리아 포지션 바뀌었는지 확인
juliaYesEumyangIlchi=sql_rra_ibjangGo[6]*ibjang;
if (juliaYesEumyangIlchi<=0 || hhJuliaIbjangBhBs !=0){
if (juliaYesEumyangIlchi<0){ // 줄리아 포지션 역향 발령시
juliaIbjangYucHyangRyung=1;
tal_jangjun_gesu=-1;
talHeureumHu_sqlDasiDocUmu=1; // 다시 읽기 1 부여
}
talHeureum=1; // 탈출발생 유 처리
heureumBhDoinCho=1;
heureumBhDoinCho1HooBongSu=1;
}
/////////////////// 수동개입 청산시 감지
/*
Account1.SetBalanceItem(jumunJoonCode,0);
hhBalanceCount=Account1.Balance.count; // 결. 현재 잔고 수량.
if (hhBalanceCount==0){
talHeureum=0;
ibjang=0;
}
*/
}
}
}
/////////////////// 청산부
if (talHeureum==1 && julia_gyotong==1004){
isNormalVV=false;
if (talHeureum1Si_reFreshHu==0){
hhTonggwaJoong=800;
heureumBhDoinCho=0;
onupd*teAccount_doin=0;
///////////////////
Account1.SetBalanceItem(jumunJoonCode,0);
hhBalanceCode=Account1.Balance.code;
hhBalanceCount=Account1.Balance.count;
hhBalanceIbjang=Account1.Balance.position;
if (hhBalanceCount>=1){
heureumJoongheureumTal=0;
talHeureum2HooBongSu=0;
talHeureum=2;
}
} else if (talHeureum1Si_reFreshHu==1){
if (heureumBhDoinCho==1){
hhTonggwaJoong=81;
heureumBhDoinCho=0;
onupd*teAccount_doin=0;
Account1.Refresh();
}
//////////////
heureumBhDoinCho1HooBongSu+=1;
if (heureumBhDoinCho1HooBongSu>=heureumBhDoinCho1HooDasiRefreshBongSu){
heureumBhDoinCho1HooBongSu=1;
Account1.Refresh();
}
if (onupd*teAccount_doin==1){
///////////////////
Account1.SetBalanceItem(jumunJoonCode,0);
hhBalanceCode=Account1.Balance.code;
hhBalanceCount=Account1.Balance.count;
hhBalanceIbjang=Account1.Balance.position;
if (hhBalanceCount>=1){
heureumJoongheureumTal=0;
talHeureum2HooBongSu=0;
talHeureum=2;
}
}
}
}
if (talHeureum==2){ // 청산 시작
hhTonggwaJoong=82;
if (hhBalanceIbjang==1){ // 현재 보유 포지션 매도시
Main.MessageList("talHeureum 2_1 분기 통과한.")
talHeureum=3;
tal_jumunHoo_bongSu=1;
heureumBhDoinCho=1;
heureumBhDoinCho1HooBongSu=1;
//////////////////
tal_jangjun_gesuGyul=jumun_jangjun_gesu_juliaBhBsSi;
if (juliaIbjangYucHyangRyung==1){
tal_jangjun_gesuGyul=tal_jangjun_gesu;
}
//////////////////
/*
hhTalJumunGaC=hhJuliaIbjangSiJuliaC-(CHg01_soDongTick*tal_jangjun_gesuGyul); // 청산 장전가
////////////////// hhTalJumunGaC 보정
if (jumunGa_bojungHu==1){
if (hhTalJumunGaC>hhBidC){
hhTalJumunGaC=hhBidC+(CHg01_soDongTick*1);
}
}
hhTalJumunGaC=hhTalJumunGaC.toFixed(CHg01_soDongTick_sosuJum_jarisu);
*/
hhTalJumunGaC=hhBidHengGaC;
talJumunHyang=1;
talJumunSiTalGac=hhTalJumunGaC;
taljumunHoo_domang_orderReplace_ryung=0;
hhTonggwaJoong=821;
orderIDvvJ1=orderIDvv;
orderId_810=Account1.OrderBuy(hhBalanceCode,hhBalanceCount,hhTalJumunGaC,2);
} else if (hhBalanceIbjang==2){ // 현재 보유 포지션 매수시
Main.MessageList("talHeureum 2_2 분기 통과한.")
talHeureum=3;
tal_jumunHoo_bongSu=1;
heureumBhDoinCho=1;
heureumBhDoinCho1HooBongSu=1;
//////////////////
tal_jangjun_gesuGyul=jumun_jangjun_gesu_juliaBhBsSi;
if (juliaIbjangYucHyangRyung==1){
tal_jangjun_gesuGyul=tal_jangjun_gesu;
}
//////////////////
/*
hhTalJumunGaC=hhJuliaIbjangSiJuliaC+(CHg01_soDongTick*tal_jangjun_gesuGyul); // 청산 장전가
////////////////// hhTalJumunGaC 보정
if (jumunGa_bojungHu==1){
if (hhTalJumunGaC=Math.abs(CHg01_soDongTick*talJumunSiTalGa_domang_orderReplace_tickGesu)){
taljumunHoo_domang_orderReplace_ryung=1;
}
}
}
//////////////
if (heureumBhDoinCho==1){
heureumBhDoinCho=0;
onupd*teAccount_doin=0;
Account1.Refresh();
}
//////////////
heureumBhDoinCho1HooBongSu+=1;
if (heureumBhDoinCho1HooBongSu>=heureumBhDoinCho1HooDasiRefreshBongSu){
heureumBhDoinCho1HooBongSu=1;
Account1.Refresh();
}
//////////////
if (onupd*teAccount_doin==1){
hhTonggwaJoong=83;
////////// 미체결
hhUnfillOrder=Account1.SetUnfillOrderNumber(orderNumVV);
unfill_orderNum=Account1.Unfill.orderNum; // 미체결
unfill_count=Account1.Unfill.count; // 미체결
Account1.SetBalanceItem(jumunJoonCode,0);
hhTalJung_balanceCount=Account1.Balance.count;
//////////////
if (hhTalJung_balanceCount==0){ // 청산 됐을시
hhTonggwaJoong=84;
if (ibjang==1000){
ibjangBhBs=100080;
} else if (ibjang==-1000){
ibjangBhBs=-100080;
}
ibjang=0; // 포지션 0 부여.
talHeureum=0;
Account1.Refresh();
} else { // 청산 아직 안 됐을시
/////////////////// 줄리아 포지션 바뀌었는지 확인
juliaYesEumyangIlchi=sql_rra_ibjangGo[6]*ibjang;
if (juliaYesEumyangIlchi>0 && Math.abs(hhJuliaIbjangBhBs)==1){
// //////// 청산 대기중인 포지션과 새로 발령된 줄리아 포지션이 일치할 시만
talHeureum=0;
heureumJoongheureumTal+=1;
if (heureumJoongheureumTal%(14*4)==1){
heureumJoongheureumTal=0;
Account1.OrderCancel(unfill_orderNum);
// // 결. 청산 대기 중 주문 취소 // 이때 ibjang==1000 또는 -1000 임.
}
} else if (juliaYesEumyangIlchi<0 && Math.abs(hhJuliaIbjangBhBs)==1) {
// //////// 청산 대기중 줄리아 포지션이 역향 발령시- 적극 청산하고 sql 다시 읽기 부여
talHeureumHu_sqlDasiDocUmu=1; // 다시 읽기 1 부여
//////////////// 적극 청산
tal_jangjun_gesu=-1;
if (ibjang>0){
// hhTalJumunGaC=hhJJc-(CHg01_soDongTick*tal_jangjun_gesu);
hhTalJumunGaC=hhAskHengGaC-(CHg01_soDongTick*1);
} else if (ibjang<0){
// hhTalJumunGaC=hhJJc+(CHg01_soDongTick*tal_jangjun_gesu);
hhTalJumunGaC=hhBidHengGaC+(CHg01_soDongTick*1);
}
hhTalJumunGaC=hhTalJumunGaC.toFixed(CHg01_soDongTick_sosuJum_jarisu);
orderId_tal_replace=Account1.OrderReplace(unfill_orderNum,unfill_count,hhTalJumunGaC);
} else { // 청산 대기중 갈래
if (tal_jumunHoo_bongSu>=tal_jumunHoo_orderReplace_jacBongSu && taljumunHoo_domang_orderReplace_ryung==1){
// // 청산이 안되고 있을 시 정정주문- 6봉 손잡이
hhTonggwaJoong=85;
tal_jumunHoo_bongSu=1;
//////////////
taljumunHoo_domang_orderReplace_ryung=0;
if (ibjang==1000){
talJumunSiTalGac=talJumunSiTalGac-(CHg01_soDongTick*4); // 4개 손잡이
} else if (ibjang==-1000){
talJumunSiTalGac=talJumunSiTalGac+(CHg01_soDongTick*4);
}
////////////// 적극적 청산을 위한 주문가격 설정
if (ibjang>0){
// hhTalJumunGaC=hhJJc-(CHg01_soDongTick*1);
hhTalJumunGaC=hhAskHengGaC;
} else if (ibjang<0){
// hhTalJumunGaC=hhJJc+(CHg01_soDongTick*1);
hhTalJumunGaC=hhBidHengGaC;
}
// hhTalJumunGaC=hhTalJumunGaC.toFixed(CHg01_soDongTick_sosuJum_jarisu);
//////////////
orderId_tal_replace=Account1.OrderReplace(unfill_orderNum,unfill_count,hhTalJumunGaC);
}
}
}
}
}
/////////////////// 청산 정리부
if (Math.abs(ibjangBhBs)==10 || Math.abs(hhJuliaIbjangBhBs)==1){
tal_jangjun_gesu=0; // 처리일
ibjangBhBsSiC=hhJuliaIbjangSiJuliaC;
juliaIbjangYucHyangRyung=0;
talHeureumHu_sqlDasiDocUmu=2;
jn_jumunHoo_orderJe_hoisu=0;
} else if (Math.abs(ibjangBhBs)==100080){ // 청산 됐다 신호 나왔을 시
tal_jangjun_gesu=0; // 처리일
//////////////////// sql 다시 읽기 부여부- 포지션 진행중 줄리아 포지션 역향 발령시 등
if (talHeureumHu_sqlDasiDocUmu==1){ // juliaYesEumyangIlchi 등에서 음이 나왔을시 등
hhDocDoinIbjangGoAnneBun=sql_rra_ibjangGo[0]-1; // 줄리아고 행 다시 읽기 가능 부여
talHeureumHu_sqlDasiDocUmu=2;
}
hhTonggwaJoong=86;
ibjang=0; // 포지션 0 부여.
}
Main.MessageList("kkuenHooBongSu=",kkuenHooBongSu," hhBalanceCount=",hhBalanceCount," ibjang=",ibjang," ibjangBhBs=",ibjangBhBs," jumunJoonCode=",jumunJoonCode," hhTonggwaJoong=",hhTonggwaJoong," talHeureum=",talHeureum," hhDocDoinIbjangGoAnneBun=",hhDocDoinIbjangGoAnneBun);
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
isNormalVV=OrderResponse.isNormal;
orderIDvv=OrderResponse.orderID;
orderNumVV=OrderResponse.orderNum;
orderCountVV=OrderResponse.orderCount;
order_errorMessage=OrderResponse.error;
Account1.SetUnfillOrderNumber(orderNumVV); // 미체결
////////////////////////// orderNum 저장
if (OrderResponse.orderID==orderId_1){
orderId_1_orderNum=OrderResponse.orderNum;
} else if (OrderResponse.orderID==orderId_81){
orderId_81_orderNum=OrderResponse.orderNum;
} else if (OrderResponse.orderID==orderId_jn_replace){
orderId_jn_replace_orderNum=OrderResponse.orderNum;
} else if (OrderResponse.orderID==orderId_810){
orderId_810_orderNum=OrderResponse.orderNum;
} else if (OrderResponse.orderID==orderId_10){
orderId_10_orderNum=OrderResponse.orderNum;
} else if (OrderResponse.orderID==orderId_tal_replace){
orderId_tal_replace_orderNum=OrderResponse.orderNum;
}
}
function Main_OnNotifyFill(NotifyFill)
{
////////////////////////// 주문 응답시 코드 재부여
if (NotifyFill.orderNum==orderId_1_orderNum){
jumunJoonCode=NotifyFill.code;
} else if (NotifyFill.orderNum==orderId_81_orderNum){
jumunJoonCode=NotifyFill.code;
} else if (NotifyFill.orderNum==orderId_jn_replace_orderNum){
jumunJoonCode=NotifyFill.code;
} else if (NotifyFill.orderNum==orderId_810_orderNum){
jumunJoonCode=NotifyFill.code;
} else if (NotifyFill.orderNum==orderId_10_orderNum){
jumunJoonCode=NotifyFill.code;
} else if (NotifyFill.orderNum==orderId_tal_replace_orderNum){
jumunJoonCode=NotifyFill.code;
}
}
function Main_Onupd*teAccount(sAccntNum, sItemCode, lupd*teID)
{
if (lupd*teID==30000){
onupd*teAccount_doin=1;
}
}