커뮤니티
예스스팟 Q&A
답변완료
1787번 관련입니다
올려주신 수식을 그대로 복사하여 실행해보니
여전히 첨부파일처럼 제대로 출력이 않되고 있읍니다.
해결 방법이 없는 걸까요 ?
2018-10-05
3158
글번호 224622
답변완료
DDE 로 데이터 수신 시 한 글자만 전송되는 현상
안녕하세요. YesSpot 에 있는 DDE 객체를 이용해서
python 에서 데이터를 전송하는 프로그램을 만들었는데,
한 글자 밖에 전송이 안되는 현상이 발생하고 있습니다.
참고 예제: https://booja.blogspot.com/2017/05/dde.html
실행환경:
Windows 10
Anaconda 64비트 설치
Python 3.6.4
Python 소스는 다음과 같습니다.
ABC 를 전송했는데 예스스팟에서 첫 글자인 A 밖에 받지 못합니다. 해결책이 뭘까요?
import time
import win32ui, dde
from pywin.mfc import object
class DDETopic(object.Object):
def __init__(self, topicName):
self.topic = dde.CreateTopic(topicName)
object.Object.__init__(self, self.topic)
self.items = {}
def setData(self, itemName, value):
try:
self.items[itemName].SetData(value)
except KeyError:
if itemName not in self.items:
self.items[itemName] = dde.CreateStringItem(itemName)
self.topic.AddItem(self.items[itemName])
self.items[itemName].SetData(value)
ddeServer = dde.CreateServer()
ddeServer.Create('PYTHON')
ddeTopic = DDETopic('hello')
ddeServer.AddTopic(ddeTopic)
while 1:
ddeTopic.setData('item1', 'ABC')
win32ui.PumpWaitingMessages(0, -1)
time.sleep(1)
2018-10-03
3387
글번호 224612
답변완료
빠르게 매매가 진행될때에 문제점
예스 뿐만 아니라 여러분께도 질문을 구합니다.
예시로 한가지 경우를 들자면
1. A 종목을 10계약 매수 주문을 넣었습니다.
2. A가 체결되는 도중에 손절가격에 도달해서 미체결된 내역을 취소하고 손절 주문을 넣습니다.
3. 가격이 손절가격을 찍고 바로 상승해서 미체결 취소주문의 OrderResponse가 오기전에
A 매수 주문이 체결되어 버렸습니다.
4. 따라서 OrderResponse에서는 취소할 주문번호가 존재하지 않기 때문에 오류가 발생합니다.
이러한 케이스의 오류를 해결할 수 있는 방법이 있을까요?
여러 방안으로 고민해보지만 원하는 답이 나오지 않아서 여쭤봅니다.
2018-10-02
2836
글번호 224611
답변완료
일정시간 매수, 청산 수식
100분봉을 사용하면 몇일만에 신호가 발생되어 매수한 옵션종목이 바뀌게 되어 청산이 안됩니다.최초 매수한 종목이 저장되어 몇일 후에도 같은종목이 청산되는 수식 원합니다.
아래와 같이 만약 5계약을 매수 한다면 5초간격으로 1계약씩 매수되고 청산도 5초간격으로 청산하는 수식 원합니다.
var Start, BE, SE;
var CallCode, PutCode;
function Main_OnStart()
{
Main.MessageList("시작");
//내부파일에 Start로 저장된 값 호출해 V에 저장
var V = Main.GetUserValue("Start");
//0이면 Start는 0
if (V == 0)
Start = 0;
//1이면
if (V == 1)
{
//Start는 1
Start = 1;
//CallCode에 내부파일 Code에 저장된 값 호출해 저장
CallCode = Main.GetUserValue("Code");
}
if (V == -1)
{ Start = 0;
//Start는 -1
Start = 1;
//PutCode에 내부파일 Code에 저장된 값 호출해 저장
PutCode = Main.GetUserValue("Code");
Main.SetTimer(1, 5000);//5초간격 타이머 셋팅
}
}
function C1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1 )
{
Main.MessageList("매수신호발생");
Start = 1;
CallCode = Option.GetATMCallRecent(0);
var CallPrice = Option.GetAskByCode(CallCode,2);
A1.OrderBuy(CallCode, Vo, CallPrice, 0);
BE = 1;
Main.SetTimer(1,5000);
//Start와 종목코드 저장
Main.SetUserValue("Start", Start);
Main.SetUserValue("Code", CallCode);
}
if (Start == 1 && Signal.signalKind == 2 )
{
Start = 0;
Main.MessageList("매수청산발생");
var BxPrice = Option.GetBidByCode(CallCode, 2);
A1.OrderSell(CallCode, Vo, BxPrice, 0);
Main.KillTimer(1);
//저장값 초기화
Main.SetUserValue("Start", 0);
Main.SetUserValue("Code", " ");
}
if (Signal.signalKind == 3 )
{
Main.MessageList("매도신호발생");
Start = -1;
PutCode = Option.GetATMPutRecent(0);
var PutPrice = Option.GetAskByCode(PutCode, 2);
A1.OrderBuy(PutCode, Vo, PutPrice, 0);
SE = 1;
Main.SetTimer(1,5000);
//Start와 종목코드 저장
Main.SetUserValue("Start", Start);
Main.SetUserValue("Code", PutCode);
}
if (Start == -1 && Signal.signalKind == 4 )
{
Start = 0;
Main.MessageList("매도청산발생");
var SxPrice = Option.GetAskByCode(PutCode, 2);
A1.OrderSell(PutCode, Vo, SxPrice, 0);
Main.KillTimer(2);
//저장값 초기화
Main.SetUserValue("Start", 0);
Main.SetUserValue("Code", " ");
}
}
//5초단위로 잔고 체크
function Main_OnTimer(nEventID)
{
if (nEventID == 1 && Start == 1)
{
BE = BE+1;
if (BE < 5)
{
A1.OrderBuy(CallCode, 1, 0, 1);
}
if (BE == 5)
{
Main.KillTimer(1);
Main.SetTimer(2,1000);
}
}
if (nEventID == 1 && Start == -1)
{
SE = SE+1;
if (SE < 5)
{
A1.OrderBuy(PutCode, 1, 0, 1);
}
if (SE == 5)
{
Main.KillTimer(1);
Main.SetTimer(2,1000);
}
}
}
}
}
2018-09-29
2821
글번호 224609
답변완료
두개의수식을 만족하는 조건
하나의 조건과
다른하나의 조건이 만족할때
사용하는 함수는 무엇인가요?
예를들어 a전략 그리고 b전략이 만족할때진입시그널 주는경우
2018-09-28
2747
글번호 224608
답변완료
피라미딩 청산 수식관련
첨부사진처럼 피라미딩 진입이 있을때 청산신호가 2개라서 이전진입계약수가 2계약이라 총 4개가 청산되는데 2계약만 청산하고 싶은데 어떻게 해야할지 모르겠습니다.
아래수식에다 적용을 하려면 어떻게 수정해야하는지 알고 싶은데 도움부탁드리겠습니다.
//스팟 시작시
function Main_OnStart()
{
Main.MessageList("스팟 시작");
}
//-------------------------------------------------------------------------------------
//차트에서 신호나오면 MarketData1 종목에 대해 주문
function Chart1_OnRiseSignal(Signal) //차트1에서 완성신호이벤트가(온라이즈시그널)) 발생하면 시그널에 그정보를 넘겨준다
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count,매수주문가격,주문종류);
}
//매수청산신호 발생
if (Signal.signalKind == 2)
{
//잔고셋팅해 매수포지션 있으면 잔고수량만큼만 청산
Main.MessageList("J1매수청산");
Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
BXID = Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,매도주문가격,주문종류);
}
}
//매도진입신호 발생
if (Signal.signalKind == 3)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count,매도주문가격,주문종류);
}
//매도청산신호 발생
if (Signal.signalKind == 4)
{
//잔고셋팅해 매도포지션 있으면 잔고수량만큼만 청산
Main.MessageList("J1매도청산");
Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
SXID = Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,매수주문가격,주문종류);
}
}
}
2018-09-28
2786
글번호 224607
답변완료
사운트 출력문제
한투 예스스팟을 사용중인데요
사운드 출력을 하면 기본소리로 대체되어 나옵니다.
사운드 출력내용을 function Main_OnStart() 구문에 넣으면 시작할때 사운드가 출력되는데
다른부분에 사운드 출력문을 넣으면 사운드가 기본 삑 소리로 대체되고 지정한 사운드가 나오질 않습니다.
경로나 ₩₩ 부호가 잘못된건가 해서 확인도 해보고 다시 타이핑도 해보고 했느데 나오질 않습니다. 확인 부탁드리겠습니다.
//체결통보를 받을 때
function Main_OnNotifyFill(NotifyFill)
{
if (Math.round(SUIK) >= 3)
{
Main.MessageList("수익청산");
Main.PlaySound("D:₩₩자동매매₩₩차트사운드₩₩청산멘트.wav");
}
}
2018-09-26
2734
글번호 224606
답변완료
파워종목검색 사용할때 입력변수 값을 변경할 수 있나요?
input : ii(0);
If CodeCategory == 1 and C[ii] < O [ii] Then
Find(1);
위와 같이 수식을 작서하고 예스스팟에서 종목검색으로 검색할때 입력변수 ii의 값을 0, 1, 2, 3등 값으로 변경할수있나요?
2018-09-23
2811
글번호 224605
답변완료
예스스팟 모두 실행후 실행창의 X와 같은 기능은 어떻게 구현이 가능한가요?
예스스팟 모두 실행후 실행창의 'X'와 같은 기능은 어떻게 구현이 가능한가요?
첨부파일을 보시면 'X'버튼에 해당하는 기능으로 예스팟 실행후 실행창에서 완전 지우고 싶습니다. pause 이것은 아니고 어떤 명령어가 있는지 문의 드립니다.
2018-09-20
2870
글번호 224604
답변완료
문의 드립니다.
안녕하세요...신호 좀 부탁드립니다.
slow stochastic 지표에서 기본적으로 과열 80 침체 20으로 하고요
기간을 100 slow%k 10 slow% D10 를 기본으로 하면 이 두선이 크로스할때 모든 경우에 매수 신호와 매도 신호가 나오는데요.
신호가 너무 많아서 필요한 신호만 구분하고 쉽습니다.
<<매수 조건은 이동평균선 120일선이 5도 이상의 각도로 우상향으로 올라가는 경우에 한해서만>>
SLOW STOCHASTIC 20% 이하의 침체권에서 slow%k 10 slow% D10 가 골드크로스할때에 매수 화살표 신호와 함께 소리로 알림 소리가 딩동 등으로 나게 하고쉽습니다.
즉,이동 평균선이 하방으로 내려갈때에는 골드크로스 하더라도 매수 신호가 떠지 않아야합니다.
<<매도 조건은 이동평균선 120일선이 5도 이하의 각도로 우하방으로 내려가는 경우에 한해서만....
SLOW STOCHASTIC 80% 이상의 과열권에서 slow%k 10 slow% D10가 데드크로스할때에 매도 화살표 신호와 함께 소리로 알림 소리가 딩동 등으로 나게 하고쉽습니다.
즉,이동 평균선이 상방으로 올라갈때에는 데드크로스 되더라도 매도 신호가 떠지 않아야합니다.
제 뜻이 잘 전달 되었는지 모르겠으나 위의 신호 꼭 좀 부탁드립니다.
감사합니다.
2018-09-14
2955
글번호 224602