Постов с тегом "ТОРГОВЫЕ РОБОТЫ": 5994

ТОРГОВЫЕ РОБОТЫ


торговый робот - это автоматизированная торговая система, принимающая решения и отдающая приказы на выполнение рыночных заявок на основе программного алгоритма.

В этом разделе вы найдете самые актуальные записи по теме торговые роботы.

АлгоТрейдинг , ордера - Book-or-Cancel

    • 30 января 2023, 03:08
    • |
    • Anest
  • Еще
  Реализовывал уже кто нибудь данную опцию в заявках? Какой параметр нужно дописывать в строке заявки? Что то ничего не нашел в квиковских мануалах обновления на этот счёт .


Один из методов псевдо-адаптации.

    • 30 января 2023, 01:13
    • |
    • fxsaber
  • Еще
Один из методов псевдо-адаптации.


Любой скальпер знает, что круглосуточная торговля — глупость. Есть интервалы, где достигается высокая и стабильная прибыльность, поэтому различными способами находят эти интервалы. Например, при оптимизации всех параметров ТС перебирают еще и возможные временные интервалы (начало/конец).

 



( Читать дальше )

Пример рабочей торговой системы на MQL5 с выходом по времени

#property copyright "Copyright 2019, Example Inc."
#property link      "https://www.example.com"

input int LotSize = 1;
input int Period = 30;
input double VolatilityThreshold = 0.1;
input int ExitAfterMinutes = 60;

int buyOrderId;
int sellOrderId;
datetime entryTime;

void OnTick()
{
    // Get the last Period candlesticks
    ArraySetAsSeries(candles, true);
    CopyRates(Symbol(), PERIOD_M1, TimeCurrent() - Period, Period, candles);

    // Calculate the maximum and minimum prices
    double maxPrice = High(candles);
    double minPrice = Low(candles);

    // Calculate the standard deviation of the closing prices
    double stdev = iStdDev(candles, MODE_CLOSE, 0);

    // Check if the volatility is above the threshold
    if (stdev > VolatilityThreshold)
    {
        // Check if the current ask price is higher than the maximum price
        if (Ask > maxPrice)
        {
            // Place a buy order
            if (OrderSend(Symbol(), OP_BUY, LotSize, Ask, 3, 0, 0, "My order", 16384, 0, Green))
            {
                Print("Buy order placed");
                buyOrderId = OrderTicket();
                entryTime = TimeCurrent();
            }
            else
            {
                Print("Error placing buy order : ", ErrorDescription(GetLastError()));
            }
        }

        // Check if the current bid price is lower than the minimum price
        if (Bid < minPrice)
        {
            // Place a sell order
            if (OrderSend(Symbol(), OP_SELL, LotSize, Bid, 3, 0, 0, "My order", 16384, 0, Red))
            {
                Print("Sell order placed");
                sellOrderId = OrderTicket();
                entryTime = TimeCurrent();
            }
            else
            {
                Print("Error placing sell order : ", ErrorDescription(GetLastError()));
            }
        }
    }

    if (buyOrderId > 0)
    {
        if (TimeCurrent() - entryTime >= ExitAfterMinutes * 60)
        {
            if (OrderClose(buyOrderId, LotSize, Bid, 3, clrNONE))
            {
                Print("Buy order closed");
                buyOrderId = 0;
            }
            else
            {
                Print("Error closing buy order : ", ErrorDescription(GetLastError()));
            }
        }
    }

    if (sellOrderId > 0)
    {
        if (TimeCurrent() - entryTime >= ExitAfterMinutes * 60)
        {
            if (OrderClose(sellOrderId, LotSize, Ask, 3, clrNONE))
            {
                Print("Sell order closed");
                sellOrderId = 0;
            }
            else
            {
                Print("Error closing sell order : ", ErrorDescription(GetLastError()));
            }
        }
    }
}

В защиту Python (язык такой, программирования).

    • 28 января 2023, 19:28
    • |
    • 3Qu
  • Еще
На чем чем только не писал стратегии — На VBA Excel, VB.NET (тогда еще так назывался), C#, C++. Не обошлось и без участия скриптовых языков Java Script, Lua. Не обошлось и без специализированных языков, R, например — вот где тягомотина по исполнению и большая помойка пакетов. Мож там и есть бриллианты, но кто будет искать бриллианты в помойке.) MQL4 -5 — эти, г… но полное — это не делай, туда не ходи — нах такие языки. Еще и другие были, всех и не перечислишь.
Лет, этак 5-7 тому перешел на Python (С++ тоже не забываю)). Python понравился резко и сразу. Стратегий на нем пока не писал, но моделировал много. Сейчас планирую сделать первую, для Binance. Ага, криптой торговать собираюсь. Я, так полагаю, что МОЕХ умер (или почти), и делать там абсолютно нечего. Умирал он долго и мучительно, аж с 14-го года. Жаль, вообще то, неплохой был рынок.
Итак, чем хорош Python. Это, в первую очередь, нулевой порог входа — вчера вы еще ничего не знали о нем, а сегодня уже нейросети и прочие machine learning применяете для своих задач. Да, с переменным успехом, но, ведь, применяете.) Не, ну, для тех, кто не в ладах с обычной логикой, любой язык программирования противопоказан, но не о них речь.

( Читать дальше )

Индикатор дневных уровней

Индикатор DHLM показывает Хай, Лоу и среднее значение за торговый день.
Индикатор дневных уровней

 

 

Settings =
{
    Name = «DHLM»,
        line =
{
    {
    Name = «High»,
        Color = RGB(0,200,64),
        Type = TYPET_BAR,
        Width = 1
    },
{
    Name = «Low»,
        Color = RGB(200,0,64),
        Type = TYPET_BAR,
        Width = 1
    },
{
    Name = «Median»,
        Color = RGB(0,64,200),
        Type = TYPET_BAR,
        Width = 1
        }
   }
}

local hlm = {}
local math_max = math.max
local math_min = math.min

function Init()
      return #Settings.line
end
function OnCalculate(index)
local dt = T(index)

if O(index) then
if dt.day ~= hlm.day or
          dt.month ~= hlm.month or
          dt.year ~= hlm.year then
           hlm.year = dt.year
           hlm.day = dt.day
           hlm.month = dt.month
           hlm.high = H(index)
           hlm.low = L(index)
      else
           hlm.high = math_max(hlm.high,H(index))
           hlm.low = math_min(hlm.low,L(index))
           hlm.median = (hlm.high + hlm.low)/2
      end
end
return hlm.high,hlm.low,hlm.median
end

 


ВОПРОС АЛГОТРЕЙДЕРАМ

Такой вопрос к тем, кто самостоятельно пишет роботов. какой программой лучше воспользоваться для проведения первых «экспериментов»?
Я имею в виду те программы которые не требуют особых навыков в программировании. Типа Велс-лаб или ТС лаб. Что из них лучше подходит для начала? Или может быть есть что-то еще? Заранее благодарю за ответы по существу))

Про инфраструктуру. Весь мир в кармане


Про инфраструктуру. Весь мир в кармане
Обязательно ли иметь несколько мониторов для успешной торговли на бирже?

На мой взгляд — нет. Достаточно лишь смартфона в кармане и надёжной инфраструктуры.

Например, я использую торговый терминал Quik и роботов, которые интегрированы в него в виде lua-скриптов.

Для корректной работы торговых роботов необходимо иметь постоянно запущенный терминал и стабильное подключение к интернету.

Учитывая моё пребывание более 8 часов на основной работе, я не имею возможности торговать на бирже в это время с личного компьютера, а использование служебного недопустимо.

В теории можно было бы организовать постоянную работу домашнего ПК и подключение к нему удаленно, например, через TeamViewer, однако проблемы с возможым долговременным отключением электроэнергии или обрывы связи на стороне провайдера оставались бы вне моего влияния.

( Читать дальше )

Пример прибыльной торговой стратегии в исходном коде

// Scalping strategy for algotrading

// Define variables for strategy
double stop_loss = 0.5;  // stop loss in percentage
double take_profit = 2;  // take profit in percentage

// On every tick
void OnTick()
{
    // Get the current bid and ask prices
    double bid = Bid;
    double ask = Ask;

    // Get the previous bid and ask prices
    double prev_bid = iBars(Symbol(), PERIOD_M1, 0);
    double prev_ask = iBars(Symbol(), PERIOD_M1, 0);

    // Check if the current bid price is higher than the previous ask price
    if (bid > prev_ask)
    {
        // Open a long position with a stop loss and take profit
        double lot_size = NormalizeDouble(AccountFreeMargin() * 0.01 / MarketInfo(Symbol(), MODE_STOPLEVEL), 2);
        OrderSend(Symbol(), OP_BUY, lot_size, ask, 3, bid * (1 - stop_loss/100), bid * (1 + take_profit/100));
    }
    // Check if the current ask price is lower than the previous bid price
    else if (ask < prev_bid)
    {
        // Open a short position with a stop loss and take profit
        double lot_size = NormalizeDouble(AccountFreeMargin() * 0.01 / MarketInfo(Symbol(), MODE_STOPLEVEL), 2);
        OrderSend(Symbol(), OP_SELL, lot_size, bid, 3, ask * (1 + stop_loss/100), ask * (1 - take_profit/100));
    }
}

Ищу данные IQFeed

Кто-нибудь сохраняет тиковую историю рынка американских акций с IQFeed? Интересуют данные за всего за три дня 25.07.2022-27.07.2022, а они сейчас уже недоступны, так как вышли за предела окна 180 дней, за которые IQFeed может отдать данные.

Про волшебную кнопку. Мечта спекулянта


Про волшебную кнопку. Мечта спекулянта
Итак, на повестке 2 основных вопроса:
1. Как найти «кнопку «БАБЛО»?
2. Зачем делиться курицей, несущей «золотые яйца»?

Вопрос 1.
Периодически по различным каналам коммуникации я получаю от коллег и совершенно незнакомых людей запросы относительно подробностей моей торговой системы.

Несмотря на неплохой результат, лично я не считаю её суперуспешной, т.к. даже на ЛЧИ некоторые участники демонстрировали гораздо бóльшую результативность на более коротком промежутке времени, а непубличные спекулянты получают ещё более высокую прибыль.

Помогаю как могу (без деталей, безусловно): где-то постами с описанием отдельных моментов, где-то консультациями и ответами на вопросы, хотя система весьма примитивна и была придумана не мной, а на рынке используется в различных вариациях уже много лет.

Креативные люди формируют собственные системы с элементами моих подсказок, а кто-то даже умудряется закодить торговых роботов. Класс!

( Читать дальше )

....все тэги
UPDONW
Новый дизайн