Блог им. bitAndrey

на память стоп

Запускаем, будет окошко. Нажимаем куда надо. Не мучаемся больше с F2 и F6.

TurboStop (автостоп)



Выставил лотность удвоением от 1 до 32. Можно маргингейлить, можно усреднять, можно пирамидить, можно входить частями — это уж как вам надо. Расписал до 32 контрактов — это по ришке, кажется, лям — для почти всех достаточно.

ВНИМАНИЕ!!!
Для запуска нужно зайти в график торгуемого инструмента, и в цене, на вкладке «Дополнительно», проставить идентификатор «MYSTOP_PRICE».

TurboStop (автостоп)


В начале скрипта параметры. Комментарии там добавил, хитростей нет.

Всё бесплатно. Качайте, правьте, используйте целиком или частями для своих скриптов.

Ну, не совсем бесплатно. Интереса ради проведем эксперимент: если у кого возникнет жгучее желание оплатить столь скромную работу, пишите в ЛС, дам номер карты. Самому интересно, поделится ли кто-нибудь хоть стольником за, как мне кажется, полезный скрипт. Об этом потом тоже напишу. Собранные деньги на благотворительность не пойдут, а будут пропиты :)

Ставьте стопы и не сливайте! Курсов не веду, телеграфа нет, в ДУ не беру, всё пофигу.

is_run = true
CLIENT_CODE = "СЮДА СВОЁ"
SEC_CODE="RIU0"
CLASS_CODE="SPBFUT"
ACCOUNT_CODE="СЮДА СВОЁ"
Otstup=20 -- отступ для выставления лимитки
StopLoss=150 -- размер стоплосс

function OnInit()
	t_id = AllocTable();
	AddColumn(t_id, 0, "BUY", true, QTABLE_STRING_TYPE, 12);
	AddColumn(t_id, 1, "SELL", true, QTABLE_STRING_TYPE, 12);
    t = CreateWindow(t_id);
	SetWindowCaption(t_id, "Turbo Stop");
	SetWindowPos(t_id, 400, 300, 220, 160);

	InsertRow(t_id,1)
	InsertRow(t_id,2)
	InsertRow(t_id,3)
	InsertRow(t_id,4)
	InsertRow(t_id,5)
	InsertRow(t_id,6)
	
	SetCell(t_id,1,0,'Buy 1')
	SetCell(t_id,1,1,'Sell 1')
	SetCell(t_id,2,0,'Buy 2')
	SetCell(t_id,2,1,'Sell 2')
	SetCell(t_id,3,0,'Buy 4')
	SetCell(t_id,3,1,'Sell 4')
	SetCell(t_id,4,0,'Buy 8')
	SetCell(t_id,4,1,'Sell 8')
	SetCell(t_id,5,0,'Buy 16')
	SetCell(t_id,5,1,'Sell 16')
	SetCell(t_id,6,0,'Buy 32')
	SetCell(t_id,6,1,'Sell 32')
	
	SetTableNotificationCallback(t_id, OnTableEvent)
end

-- Функция обрабатывает события в таблице
function OnTableEvent(t_id, msg, par1, par2)
    -- Если был клик левой кнопкой
	if msg == QTABLE_LBUTTONDBLCLK then
		if par1 == 1 and par2 == 0 then DoFire(true,1) end
		if par1 == 1 and par2 == 1 then DoFire(false,1) end
		if par1 == 2 and par2 == 0 then DoFire(true,2) end
		if par1 == 2 and par2 == 1 then DoFire(false,2) end
		if par1 == 3 and par2 == 0 then DoFire(true,4) end
		if par1 == 3 and par2 == 1 then DoFire(false,4) end
		if par1 == 4 and par2 == 0 then DoFire(true,8) end
		if par1 == 4 and par2 == 1 then DoFire(false,8) end
		if par1 == 5 and par2 == 0 then DoFire(true,16) end
		if par1 == 5 and par2 == 1 then DoFire(false,16) end
		if par1 == 6 and par2 == 0 then DoFire(true,32) end
		if par1 == 6 and par2 == 1 then DoFire(false,32) end
	end
end

function GetLastPrice(TickerName)
	local NL=getNumCandles("MYSTOP_PRICE")
	tL, nL, lL = getCandlesByIndex ("MYSTOP_PRICE", 0, NL-1, 1) -- last свеча
	local aCurrentPrice=tL[0].close -- получили текущую цену (ЦПС)
	return aCurrentPrice
end

function DoFire(BuyFlag, LotSize)
	if BuyFlag then
		Operat="B"
		StopOperat="S"
		Condi=4
		Revers=1
	else
		Operat="S"
		StopOperat="B"
		Condi=5
		Revers=-1
	end
	
	t = {
			["CLASSCODE"]=CLASS_CODE,
			["SECCODE"]=SEC_CODE,
			["ACTION"]="NEW_ORDER", -- новая сделка.
			["ACCOUNT"]=ACCOUNT_CODE,
			["CLIENT_CODE"]=CLIENT_CODE,
			["TYPE"]="L",
			["OPERATION"]=Operat, -- направление сделки, "B" или "S"
			["QUANTITY"]=tostring(LotSize), -- объем, (акции - в лотах, а не штуках).
			["PRICE"]=string.format("%i", GetLastPrice(SEC_CODE)-Otstup*Revers), -- цену лимитки ставим для мгновенного исполнения.
			["TRANS_ID"]=tostring(LotSize)
		}
	res1 = sendTransaction(t) -- ... передаем сделку по рынку.
	message("ZAYAVKA="..res1)
	if res1=="" then
		message("OK. Need STOP")
		t2 = {
                       ['ACTION'] = "NEW_STOP_ORDER", 
                       ['PRICE'] = string.format("%i", GetLastPrice(SEC_CODE)-(Otstup+StopLoss+100)*Revers), 
                       ['EXPIRY_DATE'] = "TODAY",
                       ['STOPPRICE'] = string.format("%i", GetLastPrice(SEC_CODE)-(Otstup+StopLoss)*Revers),
                       ['STOP_ORDER_KIND'] = "SIMPLE_STOP_ORDER",
                       ['TRANS_ID'] = "11",
                       ['CLASSCODE'] = CLASS_CODE,
                       ['SECCODE'] = SEC_CODE,
                       ['ACCOUNT'] = ACCOUNT_CODE,
                       ['CLIENT_CODE'] = CLIENT_CODE,
                       ['TYPE'] = "L",
                       ['OPERATION'] = StopOperat,
                       ['CONDITION'] = Condi, -- Направленность стоп-цены. Возможные значения: «4» - меньше или равно, «5» – больше или равно
                       ['QUANTITY'] = tostring(LotSize)
        }
		res2 = sendTransaction(t2)
		message("STOP="..res2)
	end
end

function main()
	while is_run do
		sleep(100)
	end
end

function OnStop()
	DestroyTable(t_id)
	is_run = false
	return 1000
end
569 | ★4
3 комментария
второй аккаунт  Turbo Pascal ?
avatar
Vadim S, мания преследования? Какая вам разница?
Полезно — используй, не нужно — пройди мимо.
Есть критика или пожелания — выкладывай.
Ни то, ни другое, ни третье — иди… Не скажу куда.

Да, этот коммент с третьего акка Турбопаскаля. )))
avatar

VladMih,  потому что это плагиат. 

smart-lab.ru/blog/640630.php

avatar

Читайте на SMART-LAB:
Фото
Нефть не любит резких взлетов
👉 Наш канал в MAX 👈 👉 Чат Иволги в MAX 👈 На графике нефти последних 20 с небольшим лет мы не видим восходящей...
Фото
BRENT: Дипломатия Трампа против "бычьего десанта" — кто блефует?
После сенсационного заявления Трампа о достижении двухнедельного перемирия с Ираном нефть открыла торги в среду с мощным гэпом вниз. Цена...
💡 «ВИ.ру» укрепляют фундамент
🔹 В 2025 году «ВсеИнструменты.ру» завершили этап агрессивного роста и перешли к модели устойчивого генерирования денежного потока. Основа бизнеса...
Фото
Кто сейчас самый дешевый сбыт? Сводный пост по сбытовым компаниям по отчетам РСБУ за 2025г.
Волгоградэнергосбыт Ставропольэнергосбыт Самараэнерго Мордовэнергосбыт Пермэнергосбыт Новосибирскэнергосбыт...

теги блога Андрей

....все тэги



UPDONW
Новый дизайн