Я был в шоке!!! Количество ботов просто поражает. Фактически все цены на рынках предлагаются ботами. При этом скорость работы крайне высокая. Гораздо выше чем у меня. Хотя у меня ордер устанавливается достаточно быстро, бот успевает уже занять первое место в очереди. А это наводит на мысли о непосредственной близости бота до биржи. И не только географически))))
Алгоритм работы достаточно простой.
Имеем рынок (в скобках обьёмы): 20(5)/30(6)
Улучшаем цену: 21(1)/29(1)
Немедленно цена меняется: 22(5)/28(6)
Т.е. боты делают рынок ещё лучше поверх моих ордеров. Стоит убрать свои ордера, как цена меняется на первоначальную: 20(5)/30(6)
Если постоянно улучшать цену, то на некотором расстоянии от рынка боты отстают и возвращаются на первоначальный уровень.
Несколько таких роботов могут загнать цену достаточно прилично. Но на этот случай у них стоят ограничения. Интересно смотреть на "подобные игры разума". Ордера на покупку начинают ползти вверх, затем обваливаются, затем обратно ползут... и так раз 10-20. Затем всё прекращается.
Представляю сколько ботов на валютах))))) И это означает, что краткосрочные цены, ни что иное как результат работы алгоритма ботов. В общем -> Успехов в работе краткосрочникам на форекс!!!!))))))
Spekuljant wrote 341 Days Ago (neutral) 0Это не столько механизм работы биржи, сколько механизм работы любого рынка.1 pointfxrate wrote 343 Days Ago (neutral) 0To: "Ты пытаешся получить прибыль из самого механизьма работы биржи, набирая профит на многочисленных сделках в 5 - 10 пунктов, при этом ты рискуешь больше меня, так ка я за эти же деньги пытаюсь взять 40 - 100 пунктов одним ордером"
Манименеджмент в торговле нужен обязательно.
3 pointsSpekuljant wrote 343 Days Ago (neutral) 0)))) а что им пару сделок убыточных. А вот ты можешь оказатся в ситуации когда продавать некому будет, кроме как ботам и с дисконтом ;) тут всё от обьёмов зависит0 pointstreefast wrote 343 Days Ago (neutral) 0я продам через 10 пунктов и боты окажуться..... посмотришь что будет 2 августа сего года)))
1 pointSpekuljant wrote 343 Days Ago (neutral) 0Боты торгуют, то есть работают в пределах ближайших сделок. Купил дёшево и тут-же продал за дорого. Тут анализ никакой не нужен, главное чтобы цены были лучшие на рынке, что боты и делают). В твоём примере будут покупать у продавцов, а потом сливать тебе задорого. А когда продавцов не станет, боты будут взвинчивать цену пока не найдут продавцов. Ну а тебе естественно прийдётся больше $$$ выложить за акции. Но что на акциях, я не знаю. Пока про фьючерсы написал.1 pointtreefast wrote 343 Days Ago (neutral) 0Пример: я знаю что завтра акции компании Боинг, поднимуться на 300 пунктов, я "инвестор", а не "скальпер" и мне пофиг "лучшая" или "худшая" цена отличающияся друг от друга на 10 тую долю цента :) Я покупаю 28 400 акций BA, вкладывая в сделку 2 000 000,00 $ более крупные игроки, выложат большие суммы. Что в таком случае будут делать "боты" покупать по лучшей цене, продавать по большей? И те и другие - прогорят, как бы близко к рынкку они не стояли. :)0 pointsSpekuljant wrote 344 Days Ago (neutral) 0Да там бес скользящих средних обходятся. Там чисто торговля, без заморочек. Просто сделать лучшую цену на рынке, лучше чем у конкурентов.0 pointstreefast wrote 344 Days Ago (neutral) 0Алгоритм работы робота.
В роботе реализовано выставление одной заявки, её отслеживание и исполнение. При желании можно увеличить количество заявок и выставлять их по обе стороны от скользящей средней.
определения скользящей средней
LASTPRICE_GD = get_param(ClassCodeList,Instrument,"last")
MA = MAnow("MA_GOLD") ' !!!!! График в Квике должен быть открыт, "идентификатор" - MA_GOLD
Идентификатор находится во вкладке Дополнительно.
Функция MAnow находится в файле с функциями. Пусть она немного устаревшая, но для решения задачи хватает. При желании её можно модифицировать.
Важным является этап запуска робота. Необходимо проверять, что мы имели до этого и какие телодвижения необходимо произвести один раз при запуске.
'---Проверяем, первый ли раз запустились и считываем последние данные из файла
' Вдруг мы уже запускали расчет. И чтобы повторно заявку не выставлять всё проверяем.
' Или вдруг утром запустили, а со вчера сделка оставалась.'
IF first_start == 1
vystavleno = str2num(READ_LINE (file_path, 1, error))
ispolneno = str2num(READ_LINE (file_path, 2, error))
Cena = str2num(READ_LINE (file_path, 3, error))
order_key = str2num(READ_LINE (file_path, 4, error))
IF vystavleno == 1 AND ispolneno == 0
n = GET_NUMBER_OF ("ORDERS")
sovpadenie = 0
FOR m FROM 1 TO n
trade = GET_ITEM ("ORDERS", m)
NUMBER = GET_VALUE (trade, "NUMBER") + 0
IF order_key == NUMBER AND GET_VALUE (trade, "STATUS") == "ACTIVE"
sovpadenie = 1
END IF
END FOR
IF sovpadenie == 0
ispolneno = 0
vystavleno = 0
WritePath (file_path, vystavleno, ispolneno, Cena, order_key)
END IF
END IF
first_start = 0
END IF
'----------------------------------------------------------
Дальше идет реализация самого алгоритма. Главными переменными на протяжении всего расчета робота являются vystavleno и ispolneno.
Собственно, если заявка не выставлена и не исполнена, то её надо выставить.
' Проверяем, выставлена ли заявка. Если нет, то выставляем '
IF vystavleno == 0 AND ispolneno == 0
Cena = APPLY_SCALE(MA - Shag,1)
send_order ("B",Cena,Lots,"1")
vystavleno = 1
order_key = APPLY_SCALE(OrderNumber,0) + 0
WritePath (file_path, vystavleno, ispolneno, Cena, order_key)
END IF
Теперь проверяем отклонение. Если вдруг отклонение больше заданного, то снимаем заявку. Она выставится предыдущим действием '
IF vystavleno == 1 AND ispolneno == 0
IF abs(MA - Cena - Shag) > Otklonenie
send_order_kill ("1",order_key)
vystavleno = 0
WritePath (file_path, vystavleno, ispolneno, Cena, order_key)
END IF
END IF
Один из ключевых моментов. Проверка, исполнилась заявка или нет. Если исполнилась, то меняем значение переменной ispolneno на единицу и записываем в лог-файл информацию о сделке.
IF vystavleno == 1 AND ispolneno == 0
n = GET_NUMBER_OF ("ORDERS")
FOR m FROM 1 TO n
trade = GET_ITEM ("ORDERS", m)
NUMBER = GET_VALUE (trade, "NUMBER") + 0
IF order_key == NUMBER
STATUS = GET_VALUE (trade, "STATUS")
IF STATUS == "FILLED"
ispolneno = 1
vystavleno = 0
WritePath (file_path, vystavleno, ispolneno, Cena, order_key)
WriteLog (file_log, "Открыли LONG по GD", Cena)
Writeln (file_log, "--------------------")
END IF
END IF
END FOR
END IF
Теперь осталось дождаться, когда цена вернется в исходное положение, т.е. в район скользящей средней ±Otklonenie и закрыть открытую ранее позицию
IF vystavleno == 0 AND ispolneno == 1
IF abs(MA - LASTPRICE_GD) < Otklonenie
send_order ("S","0",Lots,"1")
ispolneno = 0
vystavleno = 0
WritePath (file_path, vystavleno, ispolneno, Cena, order_key)
WriteLog (file_log, "Закрыли LONG по GD", LASTPRICE_GD)
Writeln (file_log, "--------------------")
END IF
END IF
Торговый робо выставляет одну заявку и следит за её исполнением готов.
Аналогичная система, выставляющая веер заявок заработала за месяц примерно 70 долларов при максимальном гарантийном обеспечении 12000 рублей. Если учесть, что был ещё запас для изменения вариационной маржи, то доходность составила около 15%.
................................................................................
:) :) :)1 point




