Стратегии и роботы > Стратегия, пропущенная через ИИ Deepseek

Обсуждение, описание стратегий и роботов, идеи для стратегий
bobby dee
Сообщения: 13
Зарегистрирован: 23 дек 2024, 14:53
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Стратегия, пропущенная через ИИ Deepseek

Непрочитанное сообщение bobby dee » 07 мар 2025, 14:51

Вот попытался я взаимодействовать с новейшим ИИ Deepseek - это бесплатно кстати, и возникли трудности в компиляции кода, может кто-то подскажет как избавиться от этих ошибок, в особенности с GetParameter? Пытался и так и сяк, ИИ напряг, но возникают все новые и новые ошибки, у кого есть какиe мысли, кто-то может подсказать?

Код: Выделить всё

function Initialize() {
    StrategyName = "MyMTS6";
   
    // Базовые параметры
    AddParameter("DEMA_Period", 75, "Период DEMA", 1);
    AddParameter("MA_Angle_Period", 11, "Период угла наклона MA", 1);
    AddParameter("SuperTrend_Period", 50, "Период SuperTrend", 1);
    AddParameter("HMA_Period", 16, "Период HMA", 1);
   
    // Параметры для флэта
    AddParameter("FlatThreshold", 25, "Порог ADX для флэта", 1);
    AddParameter("BB_Period", 20, "Период Боллинджера", 1);
    AddParameter("RSI_Period", 14, "Период RSI", 1);
   
    // Управление рисками
    AddParameter("ProfitTarget", 0.25, "Цель прибыли %", 0.01);
    AddParameter("TrailingStop", 0.45, "Трейлинг-стоп %", 0.01);
    AddParameter("Volume_Threshold", 1.2, "Порог объема", 0.1);

    AddInput("Input1", Inputs.Candle, 1, true, "");
    ShortLimit = 1;
}

function OnUpdate() {
    // Кэширование всех индикаторов
    var dema = MY.DEMA(Input1.Close, GetParameter("DEMA_Period"));
    var mAngle = MY.MAngle(Input1, GetParameter("MA_Angle_Period"), GetParameter("MA_Angle_Period"), 0);
    var superTrend = MY.SuperTrend(Input1, 1, GetParameter("SuperTrend_Period"), 1);
    var hma = MY.HMA(Input1.Close, GetParameter("HMA_Period"));
    var rsi = RSI(Input1.Close, GetParameter("RSI_Period"));
    var adx = ADX(Input1, 14);
    var bb = BB(Input1.Close, GetParameter("BB_Period"), 2);
    var volumeAvg = SMA(Input1.Volume, 20);

    // Определение рыночного режима
    var isTrendMarket = adx.GetValue("ADX", 0) > GetParameter("FlatThreshold");
    var isFlatMarket = !isTrendMarket;

    // Общие условия для шортов
    var baseCondition =
        dema[0] < mAngle.GetValue("MA", 0) &&
        mAngle.GetValue("MA", 0) < superTrend.GetValue("D", 0) &&
        superTrend.GetValue("D", 0) < hma.GetValue("HMA", 0) &&
        Input1.Volume[0] > volumeAvg[0] * GetParameter("Volume_Threshold");

    // Условия для трендового рынка
    var trendCondition = baseCondition &&
        rsi[0] > 65 &&
        mAngle.GetValue("A", 0) > 0.0003 &&
        adx.GetValue("+DI", 0) < adx.GetValue("-DI", 0);

    // Условия для флэта
    var flatCondition = baseCondition &&
        Input1.Close[0] > bb.GetValue("Upper", 0) &&
        rsi[0] > 70 &&
        ATR(Input1, 14)[0] < (bb.GetValue("Upper", 0) - bb.GetValue("Lower", 0)) * 0.3;

    // Проверка исторических условий
    var historicalValidation = false;
    for (var i = 1; i <= 10; i++) {
        if (dema[i] > mAngle.GetValue("MA", i) &&
            mAngle.GetValue("MA", i) > superTrend.GetValue("D", i) &&
            Input1.Close[i] > bb.GetValue("Upper", i) &&
            rsi[i] > 70) {
            historicalValidation = true;
            break;
        }
    }

    // Правила входа
    if ((isTrendMarket && trendCondition) || (isFlatMarket && flatCondition)) {
        if (historicalValidation) {
            EnterShort(100);
           
            // Автоподстройка тейк-профита во флэте
            if (isFlatMarket) {
                var targetPrice = bb.GetValue("Middle", 0);
                AddTarget("Short", targetPrice, 100);
            }
        }
    }

    // Динамическое управление позицией
    if (CurrentPosition() < 0) {
        // Для тренда: трейлинг-стоп
        if (isTrendMarket) {
            BreakingStop(GetParameter("ProfitTarget"),
                       GetParameter("TrailingStop"),
                       SignalPriceType.DeltaInPercentFromAveragePrice);
        }
       
        // Для флэта: выход по RSI
        if (isFlatMarket && rsi[0] < 40) {
            ClosePosition();
        }
    }

    // Фильтр волатильности
    if (ATR(Input1, 14)[0] < Input1.Close[0] * 0.01) {
        return;
    }
}


Вложения
hhh.jpg

Аватара пользователя
vakurbatov1
Сообщения: 1
Зарегистрирован: 02 май 2025, 16:30
Откуда: Москвабад

Re: Стратегия, пропущенная через ИИ Deepseek

Непрочитанное сообщение vakurbatov1 » 02 май 2025, 22:09

Добрый день!
Возможно вы говорите про получение значения параметров индикатора GetValue() ?
var up = ENVELOPES(Input, 10, 0.2).GetValue("Upper");
A = BB(Input.Сlose, 35) .GetValue(“Lower”, 0);; // Получаем текущее значение нижней границы BB

Подскажите, как вы строите запрос для DeepSeek, чтобы он помогал писать программу?
Программа на каком языке? C# Альфа Директ?


Вернуться в «Стратегии и роботы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей