• Почему не работает onclick js в Apple устройствах?

    @DeskundigeICT
    Проблема, вероятно, связана с тем, что на Apple устройствах может быть особенность в обработке событий. Ваш код JS имеет несколько проблем:

    1. Вы используете одну и ту же функцию `openAnswer` для всех блоков, что может привести к конфликтам и непредсказуемому поведению.

    2. Используете одинаковые идентификаторы (например, `line-vertical-1`, `line-vertical-2`, и т.д.) для разных элементов, что также может вызвать конфликты.

    3. В функции `openAnswer` переменная `descrheight` объявляется внутри функции, что делает ее недоступной в других функциях. Это также может вызвать ошибки.

    Для решения проблемы и упрощения кода, вы можете использовать делегирование событий и более универсальный подход. Вот пример, как можно переписать ваш код:

    document.addEventListener("DOMContentLoaded", function () {
    // Найти все элементы с классом 'question'
    const questions = document.querySelectorAll('.question');

    // Добавить обработчик события для каждого элемента
    questions.forEach(function (question, index) {
    question.addEventListener("click", function () {
    toggleAnswer(index + 1);
    });
    });

    function toggleAnswer(questionNumber) {
    const answerSelector = `.answer-${questionNumber}`;
    const lineVerticalSelector = `.line-vertical-${questionNumber}`;

    const answer = document.querySelector(answerSelector);
    const lineVertical = document.querySelector(lineVerticalSelector);

    if (answer && lineVertical) {
    const descrheight = answer.scrollHeight + 20;

    if (descrheight === 0) {
    answer.style.maxHeight = '0px';
    answer.classList.remove(`answer-active-${questionNumber}`);
    lineVertical.classList.remove(`line-vertical-deactive-${questionNumber}`);
    } else {
    answer.style.maxHeight = descrheight + 'px';
    answer.classList.toggle(`answer-active-${questionNumber}`);
    lineVertical.classList.toggle(`line-vertical-deactive-${questionNumber}`);
    }
    }
    }
    });

    Этот код добавляет один обработчик события для всех элементов вопросов и использует функцию `toggleAnswer`, чтобы управлять открытием и закрытием ответов. Это делает код более модульным и уменьшает повторение. Пожалуйста, попробуйте этот подход и посмотрите, поможет ли это решить проблему на устройствах Apple.
    Ответ написан
    Комментировать
  • В чём может быть проблема в выставлении стоп-лосса?

    @DeskundigeICT
    Я думаю, что проблема в выставлении стоп-лосса может быть связана с тем, как вы определяете переменные longSL и shortSL. Вы используете функцию barssince, которая возвращает количество баров с последнего истинного значения условия. Однако, если условие было истинным на текущем баре, то функция вернет ноль, а не единицу. Это может привести к тому, что стоп-лосс будет выставлен на уровне strategy.position_avg_price, а не на уровне close - close * stopPer или close + close * stopPer.

    Чтобы исправить эту ошибку, вы можете добавить единицу к результату функции barssince, чтобы учитывать текущий бар. Например, вместо:

    longSL := if inLong and barssince(longClose) < barssince(longCondition) strategy.position_avg_price else if inLong longSL1 else close - close * stopPer

    Вы можете написать:

    longSL := if inLong and barssince(longClose) + 1 < barssince(longCondition) + 1 strategy.position_avg_price else if inLong longSL1 else close - close * stopPer

    Аналогично для shortSL. Это должно обеспечить более точное выставление стоп-лосса в соответствии с вашими параметрами.
    Ответ написан
    Комментировать
  • Виндовс 10 до 11, как обновить?

    @DeskundigeICT
    Для обновления до Windows 11 вам нужно убедиться, что ваше устройство соответствует минимальным системным требованиям для этой операционной системы. Вы можете проверить это с помощью приложения "Проверка работоспособности ПК Windows", которое можно скачать с официального сайта Майкрософт.

    Если ваше устройство поддерживает Windows 11, то вы можете обновиться через Центр обновления Windows в параметрах. Это самый простой и рекомендуемый способ. Вам не нужен ключ для обновления, если у вас уже есть лицензия на Windows 10.

    Если вы хотите обновиться другими способами, то вы можете использовать Помощник по установке или создать установочный носитель Windows 11. Однако эти способы не рекомендуются, так как они могут привести к проблемам совместимости или безопасности.
    Ответ написан
    Комментировать
  • Проверяет ли Роскомнадзор на территории какой страны расположен сайт?

    @DeskundigeICT
    В соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации», Роскомнадзор имеет право проверять местоположение сайтов, содержащих информацию, распространение которой в Российской Федерации запрещено, и включать их в единый реестр доменных имен, указателей страниц сайтов в сети «Интернет» и сетевых адресов. Для этого Роскомнадзор использует специальные сервисы, такие как «проверка ограничения доступа к сайтам» и «местонахождение сайта и IP адреса».

    Если ваш сайт не нарушает законодательства РФ, то вы можете зарегистрироваться в реестре операторов ПД и осуществлять обработку персональных данных ваших пользователей. Однако, если вы укажете неверный адрес ДЦ, то это может быть расценено как обман Роскомнадзора и повлечь за собой административную или уголовную ответственность. Поэтому, я рекомендую вам быть честным и указать реальное местоположение вашего сервера. Если вы хотите избежать возможных проблем с РКН, то вы можете перенести ваш сайт на российский хостинг, но это не обязательно.
    Ответ написан
    Комментировать
  • Почему C# не кроссплатформенный?

    @DeskundigeICT
    C# - это язык программирования, который был разработан компанией Microsoft в конце 1990-х годов. Он основан на концепции виртуальной машины, которая называется Common Language Runtime (CLR). CLR - это среда, которая исполняет код, написанный на C# или других языках, поддерживающих стандарт .NET. CLR обеспечивает некоторые преимущества, такие как управление памятью, безопасность, отладка и т.д.

    Однако, CLR не является универсальной виртуальной машиной, которая может работать на любой платформе. Она зависит от операционной системы и архитектуры процессора, на которых она запускается. Поэтому, для того, чтобы C# был кроссплатформенным, нужно иметь реализацию CLR для каждой платформы, на которой хочется запустить код на C#.

    Изначально, Microsoft разрабатывала CLR только для своей операционной системы Windows, которая была самой популярной и востребованной на рынке. Это означало, что C# был привязан к Windows и не мог работать на других платформах, таких как Linux или Mac OS. Это было одним из основных отличий от Java, которая имела виртуальную машину Java (JVM), которая была доступна для многих платформ и обеспечивала полную кроссплатформенность.

    Со временем, появились проекты, которые пытались сделать C# кроссплатформенным, используя открытые стандарты и спецификации .NET. Самым известным из них является проект Mono, который начался в 2001 году и продолжается до сих пор. Mono - это реализация CLR и библиотек .NET для Linux, Mac OS и других платформ. Mono позволяет запускать многие приложения, написанные на C#, на разных платформах, но не без ограничений и проблем. Например, Mono не поддерживает все возможности и технологии, которые есть в оригинальном .NET Framework от Microsoft, такие как Windows Forms, WPF, ASP.NET и т.д. Также, Mono может иметь различия в производительности, совместимости и стабильности по сравнению с .NET Framework.

    В последние годы, Microsoft стала более открытой и поддерживающей кроссплатформенность. Она выпустила новую версию .NET, которая называется .NET Core, которая является модульной, легковесной и кроссплатформенной реализацией CLR и библиотек .NET. .NET Core поддерживает Windows, Linux и Mac OS, а также позволяет разрабатывать веб-приложения, мобильные приложения и микросервисы на C#. .NET Core является будущим .NET и планируется объединить его с .NET Framework и Mono в единую платформу, которая будет называться .NET 8.

    Таким образом, можно сказать, что C# становится все более кроссплатформенным, но это не значит, что он работает на чем угодно. Он все еще зависит от наличия реализации CLR для конкретной платформы, а также от совместимости и поддержки различных технологий и библиотек, которые используются в приложениях на C#. В этом смысле, Java все еще имеет преимущество в кроссплатформенности, так как JVM более универсальна и доступна для большего числа платформ.
    Ответ написан
    1 комментарий