В своё время активно пользовался. Робот для выставления стопа и тейк профита.
Как только видит открытые позиции. Выставляет стоп. Может кому надо. Пользуйтесь
Нужно заполнить только
cAccount=«7600lll» ВАШ СЧЕТ
cClassName=«SPBFUT» ЧТО ТОРГУЕТЕ
cProfit=7500 ТЕЙК ПРОФИТ
cProfShift=100 ОТСТУП ОТ ЦЕНЫ
cProfSpr=500 СПРЕД
cStopLoss=400 ЗНАЧЕНИЕ СТОПА
cSLSpr=500 СПРЕД
Файл:
PORTFOLIO_EX VFAutoStop;
DESCRIPTION VFAutoStop;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;
USE_CASE_SENSITIVE_CONSTANTS;
PROGRAM
New_Global(«CurLogLine»,1)
New_Global(«gLastPos»,CREATE_MAP ()) 'коллекция крайних позиций
ClassesList = get_classes_list()
cAccount=«7600lll»
cClassName=«SPBFUT»
cProfit=7500
cProfShift=100
cProfSpr=500
cStopLoss=400
cSLSpr=500
cLogFile=«C:\VFAutoStop.log»
FUNC WriteLog (pTitle, pMessage)
writeln(cLogFile, get_value(GET_DATETIME(), «Datetime») & " " & pTitle & " > " & pMessage)
END FUNC
func SendTrans(pTransParams)
trans_result = SEND_TRANSACTION (30, pTransParams)
'LogData(pTransParams,trans_result)
if get_value (trans_result, «RESULT»)+0.0=0 then
' WriteLog(pTransParams,get_value (trans_result, «RESULT_EX») & "|" & get_value (trans_result, «DESCRIPTION»))
WriteLog(pTransParams,trans_result)
end if
end func
Func ActiveStopOrder(pSecCode)
nOrd=Get_number_of(«STOP_ORDERS»)
result=CREATE_MAP ()
for iOrd from 1 to nOrd
asoOrder = get_item(«STOP_ORDERS», iOrd)
if get_value(asoOrder, «STATUS»)=«ACTIVE» and get_value(asoOrder, «SECCODE»)=pSecCode
result = asoOrder
end if
end for
End Func