MQL4: полезные функции пишем сюда

Тема в разделе "Индикаторы, скрипты и эксперты для МТ4", создана пользователем RickD, 5 июн 2006.

Метки:
  1. AndBar

    AndBar Новичок

    Klass :)
     
  2. Gogo

    Gogo Новичок

    Dobrovo vremeni vsem, u menia esti prosbi k programistam...
    Ia nashol indicatr v inet katorii rashitivaiet urovni Supp.. Ress
    No prablema v tom shto on rabotaet tolika na H1... ne mojete evo peredelati stobi on rascitival urovni TF H4,D1,W1
    Sposiba za ranee!

    Посмотреть вложение Pivot_Diplay_Values_.mq4
     
  3. Ice

    Ice Профи форума

    а чем не устраивают индикаторы, которые собраны в разделе "полезные индикаторы"? Там много таких, которые уровни поддержки и сопротивления высчитывают.
     
  4. cmillion

    cmillion I am an MQL programmer https://cmillion.ru

    Посмотрите вот это:

    <span class='inv'><![CDATA[<noindex>]]></span><a href="http://www.onix-trade.net/forum/go.php?http://codebase.mql4.com/ru/6133" rel="nofollow" target="_blank">Индикаторные линии, при пересечении которых выдается сигнал</a><span class='inv'><![CDATA[</noindex>]]></span>

    Линии строятся на уровнях поддержки / сопротивления.

    Удачи!
     
  5. IgRU4ek

    IgRU4ek Новичок

    Иногда полезно проследить работу нашего советника на истории, например для прерывания "чёрной" серии:
    Кодint fYbutokSeries (int Magic = -1)
    {
    int cnt = 0;
    // Организуем просмотр с конца списка
    for (int i = OrdersHistoryTotal() - 1; i >= 0; i--)
    {
    // Выделяем ордер из истории
    if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY))
    {
    // Делаем проверку по символу и магику (если нужно)
    if (OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic || Magic < 0))
    {
    // Пропускаем не рыночные ордера
    if (OrderType() > 1)
    {continue;}
    // Считаем убыточные ордера
    if (OrderProfit() < 0)
    {
    cnt++;
    continue; // Продолжаем подсчёт
    }
    else
    {return (cnt);}
    }
    }
    }
    return (0);
    }
    Функция возращает количсетво последних убыточных ордеров.
     
  6. stawros35

    stawros35 Новичок

    Подскажите пожалуйста,есть ли в MQL4 возможность использовать такое свойство пользовательского индикатора как цвет гистограммы в эксперте для определения торговых критериев и если да. то как вызвать в коде эксперта цвет гистограммы индикатора?
     
  7. simplexnet

    simplexnet Новичок

    Определенному цвету соответствует константа состояния. Вот к ней и нужно привязываться.
     
  8. Grigras

    Grigras Новичок

    Приветствую всех! Подскажите как изменить этот кусок кода. Сейчас ускоренный выход из просадки привязан к выражению GetProfitLastClosePos(), а хотелось бы привязать к уменьшению баланса, т.е. если баланс стал меньше предыдущего, то работает выделенная строка. Заранее благодарю.

    double GetLots()
    {
    double lot, loss;
    if(MoneyManagement)
    {
    RefreshRates(); // Обновление данных
    double
    Min_Lot=MarketInfo(Symbol(),MODE_MINLOT), // Миним. колич. лотов
    Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT), // Миним. колич. лотов
    Free =AccountFreeMargin(), // Свободн средства
    One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED),// Стоимость 1 лота
    Step =MarketInfo(Symbol(),MODE_LOTSTEP); // Шаг изменен размера

    loss = GetProfitLastClosePos();
    if (loss < 0) {
    lot = MathFloor(-10*loss/One_Lot/Step)*Step;
     
  9. Buldakov

    Buldakov Новичок

    Есть 3 позиции
    1 sell 0.01 лот
    2 buy 0.02 лот
    3 sell 0.02 лот
    Надо закрыть 1 sell 3 sell и половину buy если прибыль по (1 + 3) больше половины убытков по buy.
     
  10. sparm

    sparm Новичок

    возмозможно ли написать в mql вот это
    if a>s[1..7]
    без цикла(for и while)
     
  11. Svidurr

    Svidurr Новичок

    Компилятор такое не поймет
     
  12. MRRM

    MRRM Новичок

    Может кто поможет, как удалить прошлый SellStop1 ордер (как на рисунке)
     

    Вложения:

    • Buy1.JPG
      Buy1.JPG
      Размер файла:
      40,6 КБ
      Просмотров:
      5
  13. поручик

    поручик настоящий полковник

    убери сначала первый, потом выставь 2
     
  14. mirko32

    mirko32 Новичок

    Cкажите пожалуста как правильно записать в код советника -eсли открыт buy1 sell1 buy2 и надо закрыть buy2 с помощю функции Order closse By и открыть sell2
     
  15. bablusut

    bablusut Новичок

    Здравствуйте уважаемые ...
    ... хочу озвучить закрытие ордеров по TakeProfit и StopLoss через функции OrdersHistoryTotal > OrderComment > StringFind > и далее OrderStopLoss > PlaySound и OrderTakeProfit > PlaySound ... но никак не могу разобраться в правильной установке параметров функции StringFind ... кто подскажет "чайнику" правильный код параметров :
    [background=rgb(251, 249, 245)]int [/background][background=rgb(251, 249, 245)]OrdersHistoryTotal[/background][background=rgb(251, 249, 245)]();[/background]
    [background=rgb(251, 249, 245)]// retrieving info from trade history[/background]
    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]int[/background][background=rgb(251, 249, 245)] i,accTotal=[/background][background=rgb(251, 249, 245)]OrdersHistoryTotal[/background][background=rgb(251, 249, 245)]();[/background]
    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]for[/background][background=rgb(251, 249, 245)](i=0;i<accTotal;i++)[/background]
    [background=rgb(251, 249, 245)] {[/background]
    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]//---- check selection result[/background]
    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]if[/background][background=rgb(251, 249, 245)]([/background][background=rgb(251, 249, 245)]OrderSelect[/background][background=rgb(251, 249, 245)](i,SELECT_BY_POS,MODE_HISTORY)==[/background][background=rgb(251, 249, 245)]false[/background][background=rgb(251, 249, 245)])[/background]
    [background=rgb(251, 249, 245)] {[/background]
    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]Print[/background][background=rgb(251, 249, 245)]([/background][background=rgb(251, 249, 245)]"Ошибка при доступе к исторической базе ("[/background][background=rgb(251, 249, 245)],[/background][background=rgb(251, 249, 245)]GetLastError[/background][background=rgb(251, 249, 245)](),[/background][background=rgb(251, 249, 245)]")"[/background][background=rgb(251, 249, 245)]);[/background]
    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]break[/background][background=rgb(251, 249, 245)];[/background]
    [background=rgb(251, 249, 245)] }[/background]
    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]// работа с ордером ...[/background]

    [background=rgb(251, 249, 245)] }[/background]

    [background=rgb(251, 249, 245)]string [/background][background=rgb(251, 249, 245)]OrderComment[/background][background=rgb(251, 249, 245)]();[/background]
    [background=rgb(251, 249, 245)]string[/background][background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]comment[/background][background=rgb(251, 249, 245)];[/background]
    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]if[/background][background=rgb(251, 249, 245)]([/background][background=rgb(251, 249, 245)]OrderSelect[/background][background=rgb(251, 249, 245)](10,SELECT_BY_TICKET)==[/background][background=rgb(251, 249, 245)]false[/background][background=rgb(251, 249, 245)])[/background]
    [background=rgb(251, 249, 245)] {[/background]
    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]Print[/background][background=rgb(251, 249, 245)]([/background][background=rgb(251, 249, 245)]"OrderSelect() вернул ошибку - "[/background][background=rgb(251, 249, 245)],[/background][background=rgb(251, 249, 245)]GetLastError[/background][background=rgb(251, 249, 245)]());[/background]
    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]return[/background][background=rgb(251, 249, 245)](0);[/background]
    [background=rgb(251, 249, 245)] }[/background]
    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]comment[/background][background=rgb(251, 249, 245)] = [/background][background=rgb(251, 249, 245)]OrderComment[/background][background=rgb(251, 249, 245)]();[/background]

    [background=rgb(251, 249, 245)] [/background][background=rgb(251, 249, 245)]// ... [/background]

    int StringFind(
    string string_value, // строка, в которой ищем
    string match_substring, // что ищем
    int start_pos=0 // с какой позиции начинать поиск
    );
    ... заранее благодарю за подсказку.
     

Поделиться этой страницей