Для отмены ордеров на торгующей паре в Скрипт 1 НЕОБХОДИМО указать например trader.cancelOrders("LTCUSD"); вместо trader.cancelOrders(); последнее чревато отменой всех ордеров по всем вашим парам и использования всего появившегося фиата на текущей паре
Для trader.cancelAsks(); также.
Для BTCUSD начальные константы в Скрипт 1 будут конечно же другие.
С наступившим НГ !
Решил написать стратегию для этой программы
Внимание! Стратегия мало протестирована, используйте на свой страх и риск!
Торговал на боте по ссылке ниже, в принципе сделал такой же (Надеюсь по судам меня не начнут таскать =), так что алгоритм читайте тут -
https://ezhrd.wordpress.com/2014/06/05/%D0%BE%D0%B1%D1%89%D0%B8%D0%B9-%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%B1%D0%BE%D1%82%D0%B0/Но там 5$ в месяц за одну пару на одной бирже, тут же всё бесплатно.
как и в обновлении того бота,в алгоритм добавлена функция подтяжки таблицы ордеров вслед за курсом. Например, бот выставил таблицу закупок, ни одна закупка не исполнялась, но курс пошел вверх, а не вниз. Когда курс станет выше, чем цены покупки на указанный % , бот снимет всю таблицу закупок и выставит заново, отталкиваясь от нового курса.
Я JavaScript вообще не знал, изучал всё с ходу и поэтому скрипт написан непрофессионально, присылайте глюки и баги если будут.
по умолчанию скрипт написан для пары LTC/USD на бирже BTC-e, что бы настроить для другой пары на любой бирже, заменить на обоих скриптах в блокноте через ctrl+H все LTC на, например, BTC , и USD на ,например , EUR
для запуска в разделе правила добавляем два скрипта с именами "Скрипт 1" и "Скрипт 2" и вставляем текст ,в начале ОБОИХ скриптов меняем параметры под свой вкус, и запускаем Скрипт 2.
сумма на балансе должна быть вся на второй валюте в паре (для LTC/USD в USD),на первой должен быть ноль.
текст для Скрипт 1
var otstup = 0.5 // в %, отступ первого шага,Насколько цена первого buy ордера в таблице закупке должна быть меньше текущей на момент расчета таблицы. Все остальные buy ордера будут еще дешевле
var orders = 15 // от 2 до 20 , Сколько buy-ордеров помещать в объеме перекрытия.
var perekr = 20 // в % , перекрытие хода цены,Глубина расчета таблицы buy ордеров. Например, при цене первого шага 10USD процент перекрытия 20% означает, что таблица будет выставлена в // диапазоне 8-10USD.
var profit = 1 // в % , профит,Сколько профита закладывать в каждый sell ордер.
var martin = 5 // в %, мартингейл, При расчете таблицы buy ордеров каждый следующий более дешевый ордер по объему больше предыдущего на это значение.
var depo = 99 // в % , от 1 до 99, Использование депо, какую часть от USD (или второй валюты в паре) пускать в оборот
// ниже если не шарите ничего не меняйте.
var kontr = 100000000
var komissiya = trader.get("Fee")
otstup = otstup / 100
otstup = 1 - otstup
depo = depo / 100
martin = martin / 100 + 1
komissiya = komissiya *2
komissiya = komissiya / 100 + 1
perekr = perekr + otstup
profit = profit / 100 + 1
var prceni = perekr / orders
prceni =1-( prceni / 100)
trader.cancelOrders();
var pric = trader.get("BidPrice") * otstup;
var price=pric
var cena = pric
function koa()
{
all = trader.get("Balance","USD") * depo
yyy=0
for (var i = 0; i < orders ;) {
yyy = yyy + Math.pow(martin,i)
i = i + 1
}
var amount = all / yyy
for (var i = 0; i < orders;) {
trader.buy("LTCUSD" , amount / price , price);
price = price * prceni;
amount = amount * martin
i = i + 1
}
}
trader.delay(25 ,"koa()");
function aaa()
{
trader.on("OpenBidsCount").changed()
{
trader.delay(3,"aac()");
trader.delay(6,"aab()");
}
}
trader.delay(40 ,"aaa()");
function aac()
{
trader.cancelAsks();
}
function aab()
{
cenavsp = trader.get("LastMyBuyPrice") + pric
cena = cenavsp / 2 * komissiya * profit
trader.log("Ордер на продажу обновлён");
trader.sell("LTCUSD" , trader.get("Balance","LTC") , cena );
kontr = cena
cena = cena / komissiya / profit
}
trader.timer(45,"hjk()");
function hjk() {
if (trader.get("OpenBidsCount") != orders ) {
if (trader.get("OpenAsksCount") < 1 ) {
if (trader.get("Balance","LTC") < 0.000001){
trader.groupStop("Скрипт 2");
trader.groupStart("Скрипт 2");
}}}}
текст для Скрипт 2
var vverh = 1 // в %, например, если стоит 2%, и на момент запуска скрипта цена покупки будет 100 USD , то при цене покупки 102 весь цикл перезапустится
// ниже если не шарите ничего не меняйте.
var rest = 100000000000
trader.groupStop("Скрипт 1");
trader.groupStart("Скрипт 1");
sledcikl();
function sledcikl(){
rest = vverh / 100 + 1
rest = rest * trader.get("BidPrice")
trader.log("restatr pri", rest );
trader.on("BidPrice").changed()
{
rrr();
function rrr(){
if (trader.get("BidPrice") >= rest) {
if ( trader.get("OpenAsksCount") > 0 ) {
if (trader.get("Balance","LTC")< 0.0000001) {
trader.groupStop("Скрипт 1");
trader.groupStart("Скрипт 1");
sledcikl();
}}}}}}
небольшая история работы бота
LTC/USD sell 0.130933 LTC 2.32617 USD 0.30457241 USD 03.01.15 15:45
LTC/USD buy 0.131195 LTC 2.30538 USD 0.30245432 USD 03.01.15 15:45
LTC/USD sell 2.27194 LTC 2.30637 USD 5.23993425 USD 03.01.15 15:44
LTC/USD buy 0.159373 LTC 2.19128 USD 0.34923086 USD 03.01.15 15:33
LTC/USD buy 0.156927 LTC 2.20339 USD 0.34577138 USD 03.01.15 15:16
LTC/USD buy 0.154519 LTC 2.21558 USD 0.3423492 USD 03.01.15 15:16
LTC/USD buy 0.152148 LTC 2.22783 USD 0.33895987 USD 03.01.15 15:16
LTC/USD buy 0.149813 LTC 2.24014 USD 0.33560209 USD 03.01.15 15:16
LTC/USD buy 0.147514 LTC 2.25253 USD 0.33227971 USD 03.01.15 15:07
LTC/USD buy 0.145251 LTC 2.26499 USD 0.32899206 USD 03.01.15 15:05
LTC/USD buy 0.143022 LTC 2.27751 USD 0.32573403 USD 03.01.15 15:05
LTC/USD buy 0.140827 LTC 2.2901 USD 0.32250791 USD 03.01.15 15:05
LTC/USD buy 0.138666 LTC 2.30277 USD 0.3193159 USD 03.01.15 15:05
LTC/USD buy 0.136538 LTC 2.3155 USD 0.31615373 USD 03.01.15 15:00
LTC/USD buy 0.134443 LTC 2.3283 USD 0.31302363 USD 03.01.15 14:53
LTC/USD buy 0.13238 LTC 2.34118 USD 0.3099254 USD 03.01.15 14:53
LTC/USD buy 0.130348 LTC 2.35412 USD 0.30685483 USD 03.01.15 14:35
LTC/USD buy 0.128348 LTC 2.36714 USD 0.30381768 USD 03.01.15 14:25
LTC/USD buy 0.126378 LTC 2.38023 USD 0.3008087 USD 03.01.15 13:01
Всем профита! и пишите всё что думаете по поводу бота ))
UPD: 06.01 , исправил ошибки