Заработай до
50000$
на приглашении друзей
получить StartUp Bonus
от ИнстаФорекс
Вложений не требуется!
Начни торговлю
без вложений и риска
С новым STARTUP бонусом 1000$
Получи бонус
55%
от ИнстаФорекс
на каждое пополнение
Ответить в теме
Страница 4 из 384
Первая ... 3 4 5 14 ... Последняя ◄╝

Показаны сообщения: с 61 по 80 из 7672

Тема: MQL4: Несколько вопросов от начинающего

 Перейти в классический вид темы
  1. Линк#61
    Частый гость
    OLEKSANDR стараюсь положительно себя зарекомендовать Аватар для OLEKSANDR
    Регистрация:
    04.01.2010
    Сообщений:
    126
    Деньги за посты (Подробнее):
    469 RUB
    Поставил(а) лайков:
    0
    Получено лайков:  6
    в 6 сообщениях
    5%
    Продолжение темы [Архив] Несколько вопросов по MQL от начинающего

    -------------------------------------------

    как получить целое чесло ?

    MQL код:
    double A = 0.0;                           //перещот среднего бара
    for(int a = 1; a < 30; a++)
    {
    A += High[a];
    }
    double B = 0.0;
    for(int b = 1 ;b < 30; b++)
    {
    B += Low[b];
    }
    double AB = 0.0;
    AB=(A-B)/30;
    MessageBox("средний="+(AB));

    Последний раз редактировалось Gold; 24.07.2014 в 20:39. Причина: Добавил ссылку на архивную тему

  2. post_thanks Получено лайков: 1

    vivianalens (27.07.2017)

     
  3. ТОП сообщений
    2018-05-07   13:19
    Лучший ответ #1
    Накопленные выплаты 27419 RUB

    если Вы однозначно уверенны, что серия ордеров начинается с некого "стартового ордера" и он не будет закрыт ранее остальных ордеров, тогда при подсчете ордеров найдите самый "старый" рыночный ордер - по времени, он и будет стартовым, примерно так: int NumberOfOrders(int magic_,int &buy_,int &sell_,int &ticket_) { int i,ot,k=OrdersTotal(); string sy=Symbol(); buy_=0;sell_=0; datetime t,tfo = TimeCurrent(); ticket_ = -1; for (i=0; i

    2018-04-03   14:48
    Лучший ответ #2
    Накопленные выплаты 11826 RUB
    2018-09-18   13:37
    Лучший ответ #3
     

    А солидные деньги это сколько и какая в них доля спреда (я думаю очень смешная) Не надо ничего писать, итак понятен ваш результат торгов. Я плавающий спред не поливаю, я вас просто предупреждаю, что имеются не честные брокеры. Я один раз опекся и мне этого было достаточно. А на форексе я более 12 лет и за это время всякое и всяких повидал. А насчет спреда это вы что то выдумали - просто его нет в прибыльных ордерах, а других у меня не бывает. Так что меня больше волнует комиссия при снятии средств. Если бы не вы я бы так бы и не знал, что бывают проблемы со спредом. Как говорится, кто ищет проблемы тот всегда их найдет. А теперь по делу и прекращаем пустозвон, лично для меня спреда не существует, и я не отвлекаюсь по не существующим мелочам. Кроме тех 2-х счетов, где я в долгосроке, у меня имеется еще пару счетов, где, как говорится, что бы там руки не чесались я пипсую или в среднесроке. Вот один из них на forex4you (за 4 последних дня) Кроме того на 1,1664 у меня отложка на покупку пока с т/п 1,1714, А там буду смотреть вероятность на счет ордера на продажу.



    Изображение
    Превью
    2018-09-19   02:39
    Лучший ответ #4
     

    Добавь В начале старта int k=0; int orderticket[]; А в цикле k=k+1; А там уже определись for (cnt=OrdersTotal()-1; cnt>=0; cnt--) .... сnt=++ или cnt=-- с первого или с последнего... K=k+1; orderticke = OrderTicket();

    2018-09-28   13:53
    Лучший ответ #5
    Накопленные выплаты 29274 RUB



    Нужно пробовать что-то написать с применением прочтённого! Так трудно понять! Всё что приходит в голову это инвертирование состояний флага! Например в свойствах объектов или графика где применяется bool параметр! Можно ли как-то это прикрутить например сюда? ChartSetInteger(chart_ID,CHART_SHOW_TRADE_LEVELS,0,value) Вместо value использовать битовую маску и не городить проверку текущего состояния отображения торговых уровней, а просто инвертировать флаг!

    Изображение
    Превью
    2018-09-28   16:21
    Лучший ответ #6
    Накопленные выплаты 160034 RUB

    Ты не понял... bool - это не один бит. В MQL bool - это целое число размером в 1 байт. Т.е. bool - это 8 бит, где значение 0b00000000 интерпретируется, как False, а значение 0b00000001(как и остальные всевозможные комбинации битов в этом байте) интерпретируется, как True. Т.е. для типа bool нет никакого смысла в битовых операторах, за исключением оператора логического отрицания "~", при помощи которого можно инвертировать булево значение. Но даже в этом случае результат будет совершенно не таким, как при работе с другими числовыми типами. В MQL битовые операторы, в подавляющем большинстве случаев, тебе могут даже и не понадобиться, а вот при работе с WinAPI они очень даже широко используются. Попробуй почитать еще вот это -> https://ravesli.com/urok-46-bitovye-flagi-i-bitovye-maski/

  4. Линк#62
    Три Полоски
    no
     
    Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Аватар для Сержант
    Регистрация:
    14.09.2010
    Пол:
    Мужчина
    Сообщений:
    8,843
    Деньги за посты (Подробнее):
    16205 RUB
    Поставил лайков:
    26,011
    Получено лайков:  26,215
    в 8,313 сообщениях
    296%
    Цитата Сообщение от AngelDeaths Посмотреть сообщение

    К примеру, советник открывает любое количество ордеров в одном направлении, пока не наступит сетап для открытия в противоположную сторону. Тогда он всё фиксит и открывается по новому сетапу.

    MQL код:
    {
    int _typeTrade=typeTrade();
    if(_typeTrade==1){ openOrder(OP_BUY,lot,SL,TP); closeAllSell();}
    if(_typeTrade==-1){ openOrder(OP_SELL,lot,SL,TP); closeAllBuy();}
    }


    Вот, например, серия лонгов на картинке:

    Нажмите на изображение для увеличения
Название: 55.jpg
Просмотров: 96
Размер:	126.9 КБ
ID:	1066940

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

    Последний раз редактировалось Gold; 31.10.2015 в 19:37.

  5. Линк#63
    Частый гость
    AngelDeaths стараюсь положительно себя зарекомендовать Аватар для AngelDeaths
    Регистрация:
    30.06.2015
    Пол:
    Женщина
    Сообщений:
    76
    Деньги за посты (Подробнее):
    1194 RUB
    Поставила лайков:
    19
    Получено лайков:  10
    в 9 сообщениях
    13%
    MQL код:
    int order=3;  //переменная количества ордеров как BAY и SELL ()

    {
    int _typeTrade=typeTrade();
    if(_typeTrade==1) {if (order>count()) {openOrder(OP_BUY,lot,SL,TP); closeAllSell();}
    if(_typeTrade==-1) {if (order>count()){openOrder(OP_SELL,lot,SL,TP); closeAllBuy();}
    }

    //////////////////////////////////////////////////////////////////////////////////////////
    int count() //Функция подсчёта ордера на рынке.
    {
    int cnt=0;//Обнуляем счетчик ордеров
    if(OrdersTotal()>0){//Если в рынке присутствуют ордера
    for(int i=OrdersTotal();i>=0;i--){//начнем цикл перебора ордеров
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);//Выбираем ордер
    if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) //Если Символ ордера равен нашему и Позицияравна задданоой в переданном параметре и магический номер ордера соответствует нашему
    {
    cnt++;//Увеличиваем счетчик ордеров на один
    }
    }
    return(cnt);//Возвращаем кол-во найденных ордеров соответствующих критерию отбора
    }
    return(0);
    }


  6. post_thanks Получено лайков: 1

    Сержант (01.11.2015)

  7. Линк#64
    Модератор
    no
     
    Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Gold наивысший уровень репутации Аватар для Gold
    Регистрация:
    21.12.2010
    Пол:
    Мужчина
    Сообщений:
    19,123
    Поставил лайков:
    22,850
    Получено лайков:  19,605
    в 8,775 сообщениях
    103%
    Цитата Сообщение от Сержант Посмотреть сообщение
    Т.е. мне нужно, чтобы советник не открывал ордеров в бай (ниже машек) больше того количества, которое я ему задаю
    Для шортов наоборот Как это прописать в коде не знаю(
    Если цена под скользящей, есть сигнал на покупку и нет открытых buy ордеров (или их количество не достигло заданного лимита) - открыть buy. Если buy есть - условие не выполнится и еще один ордер не откроется.


  8. post_thanks Получено лайков: 1

    Сержант (01.11.2015)

  9. Линк#65
    Кандидат форумных наук
    Stam хорошая репутация Stam хорошая репутация Stam хорошая репутация Аватар для Stam
    Регистрация:
    13.09.2015
    Пол:
    Мужчина
    Сообщений:
    1,009
    Деньги за посты (Подробнее):
    26592 RUB
    Поставил лайков:
    539
    Получено лайков:  252
    в 203 сообщениях
    25%
    Цитата Сообщение от Victor-Y Посмотреть сообщение
    Закрыть можно только количество лотов, но никак не пунктов. У вас же объём лота (в конкретно этом примере) равен 0,01, то есть минимальный, а следовательно закрыть часть и так минимального лота нельзя. К примеру, если бы у вас был открыт ордер объёмом 0,03 лота, то вы можете закрыть либо весь ордер (0,03 лота), либо часть, то есть 0,01 или 0,02 лота. Причём не важно ордер в плюсе или в минусе.
    Спасибо, про закрытие я вроде понял. У меня после прочтения ответа появился противоположный вопрос. А можно ли на открытом ордере не уменьшать лот, а наоборот его увеличивать? Ведь тогда не надо будет платить спрэд за открытие второго ордера, и можно вполне придумать какую нибудь стратегию. И тогда вместо стратегии СЕТКА ОРДЕРОВ можно использовать эту возможность. И как я понимаю, можно несколько раз снижать объём лота, пока ордер сам не закроешь?


  10. Линк#66
    Три Полоски
    no
     
    Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Аватар для Сержант
    Регистрация:
    14.09.2010
    Пол:
    Мужчина
    Сообщений:
    8,843
    Деньги за посты (Подробнее):
    16205 RUB
    Поставил лайков:
    26,011
    Получено лайков:  26,215
    в 8,313 сообщениях
    296%
    Спасибо. Ну таким образом мы выставим ограничение на общее количество ордеров, насколько я понимаю ) а на самом деле нужно отфильтровать нежелательные, не ограничивая общее количество. К примеру, в бай-серии до наступления селл-условия может быть хоть 20 ордеров, часть из них ниже мувингов, часть - выше них. Вот для тех, кто ниже, и хотелось бы ввести ограничение, чтобы открывалось не более 0, 1, 2,3 и т.д., но при этом не ущемлять в правах тех, кто выше)) ну для селл-серии наоборот соответственно.

    да ладно, это походу нерешимая задача, забыли в общем)


  11. Линк#67
    Кандидат форумных наук
    В думах
     
    mql4coder хорошая репутация mql4coder хорошая репутация mql4coder хорошая репутация mql4coder хорошая репутация mql4coder хорошая репутация Аватар для mql4coder
    Регистрация:
    28.05.2014
    Пол:
    Мужчина
    Сообщений:
    1,028
    Деньги за посты (Подробнее):
    9147 RUB
    Поставил лайков:
    51
    Получено лайков:  453
    в 387 сообщениях
    44%
    Цитата Сообщение от Сержант Посмотреть сообщение
    Спасибо. Ну таким образом мы выставим ограничение на общее количество ордеров, насколько я понимаю ) а на самом деле нужно отфильтровать нежелательные, не ограничивая общее количество. К примеру, в бай-серии до наступления селл-условия может быть хоть 20 ордеров, часть из них ниже мувингов, часть - выше них. Вот для тех, кто ниже, и хотелось бы ввести ограничение, чтобы открывалось не более 0, 1, 2,3 и т.д., но при этом не ущемлять в правах тех, кто выше)) ну для селл-серии наоборот соответственно.

    да ладно, это походу нерешимая задача, забыли в общем)
    Да почему не решаемая то? Это же Элементарная задача.
    Сейчас набросаю вам примерный код.

    --------------------------------------------------
    ~разрабатываю Софт под мт4 на заказ.~
    --------------------------------------------------

  12. post_thanks Получено лайков: 1

    Сержант (02.11.2015)

  13. Линк#68
    Кандидат форумных наук
    В думах
     
    mql4coder хорошая репутация mql4coder хорошая репутация mql4coder хорошая репутация mql4coder хорошая репутация mql4coder хорошая репутация Аватар для mql4coder
    Регистрация:
    28.05.2014
    Пол:
    Мужчина
    Сообщений:
    1,028
    Деньги за посты (Подробнее):
    9147 RUB
    Поставил лайков:
    51
    Получено лайков:  453
    в 387 сообщениях
    44%
    Цитата Сообщение от Сержант Посмотреть сообщение
    Спасибо. Ну таким образом мы выставим ограничение на общее количество ордеров, насколько я понимаю ) а на самом деле нужно отфильтровать нежелательные, не ограничивая общее количество. К примеру, в бай-серии до наступления селл-условия может быть хоть 20 ордеров, часть из них ниже мувингов, часть - выше них. Вот для тех, кто ниже, и хотелось бы ввести ограничение, чтобы открывалось не более 0, 1, 2,3 и т.д., но при этом не ущемлять в правах тех, кто выше)) ну для селл-серии наоборот соответственно.

    да ладно, это походу нерешимая задача, забыли в общем)
    Забирайте пробуйте. В коде все прокомментировано. Главное помните, пишите условия ГРАМОТНО!. Потому что условия для открытия ордера под мувингом к примеру, может выполнится а ордер открыться над мувингом, если цена была достаточно близко. Поэтому вводите доп параметры проверки, дабы избежать дестабилизации счетчика ордеров.
    MQL код:

    #property copyright "Copyright © 2015, by mql4coder, https://forexdengi.com/members/200268-mql4coder"
    #property link "https://forexdengi.com/members/200268-mql4coder"
    #property version "1.0"
    #property strict

    enum modes {underMa,aboveMa};//енам для выбора метода подсчета ордеров, над и под мувингом

    extern int magic = 2015;//уникальный номер эксперта
    extern int step = 10;//расстояние между мувингами, нужно для правильной генерации игнала.
    extern int maxtrades = 3;//лимит ордеров каждого типа над и под мувингом
    extern string st1 = "Настройки мувинга для определения тренда";
    extern int Periods = 100;
    extern int ShiftsMa = 0;
    extern ENUM_MA_METHOD Method = 0;
    extern ENUM_APPLIED_PRICE AppliedPrice = 0;
    extern string st2 = "Настройки сигнального мувинга";
    extern int Periods2 = 25;
    extern int ShiftsMa2 = 0;
    extern ENUM_MA_METHOD Method2 = 0;
    extern ENUM_APPLIED_PRICE AppliedPrice2 = 0;

    int check,dg,mt;
    double pt;

    int OnInit(){
    dg=_Digits;
    if(dg==3 || dg==5){pt=Point*10;mt=10;}else{pt=Point;mt=1;}//Адаптируем эксперт под 4 и 5 знаков
    return(INIT_SUCCEEDED);
    }

    void OnDeinit(const int reason){
    GlobalVariableDel("time"+_Symbol);//Удаляем глоабльную переменную для функции NewBar
    }
    void OnTick(){
    getTrade();//Загружаем основную рабочую функцию
    }
    void getTrade(){
    double ma1=getIndi(Periods,ShiftsMa,Method,AppliedPrice,1 );//Получаем первый мувинг
    double ma2=getIndi(Periods2,ShiftsMa2,Method2,AppliedPric e2,1);//Получаем второй мувинг
    //Проверяем, есле предыдущий бар пересек мувинг2 снизу вверх, и цена находится выше мувинга 1, и расстояние между мувингами позволяет открыть сделку, и у нас ордеров над мувингом меньше максимального, а также это нвоый бар
    if(Close[1]>ma2 && Open[1]ma1 && NormalizeDouble(MathAbs(ma1-ma2),dg)>step*pt &&count(OP_BUY,aboveMa) check=OrderSend(_Symbol,OP_BUY,0.1,Ask,0,0,0,"BUY" ,magic,0,Blue);//Открываем сделку
    }
    //Проверяем, есле предыдущий бар пересек мувинг2 сверху вниз, и цена находится выше мувинга 1, и расстояние между мувингами позволяет открыть сделку, и у нас ордеров над мувингом меньше максимального, а также это нвоый бар
    if(Close[1]ma2 && Ask>ma1 && NormalizeDouble(MathAbs(ma1-ma2),dg)>step*pt && count(OP_SELL,aboveMa) check=OrderSend(_Symbol,OP_SELL,0.1,Bid,0,0,0,"SEL L",magic,0,Red);//Открываем сделку
    }
    //Проверяем, есле предыдущий бар пересек мувинг2 снизу вверх, и цена находится нижу мувинга 1, и расстояние между мувингами позволяет открыть сделку, и у нас ордеров под мувингом меньше максимального, а также это нвоый бар
    if(Close[1]>ma2 && Open[1]step*pt && count(OP_BUY,underMa) check=OrderSend(_Symbol,OP_BUY,0.1,Ask,0,0,0,"BUY" ,magic,0,Blue);//Открываем сделку
    }
    //Проверяем, есле предыдущий бар пересек мувинг2 сверху вниз, и цена находится нижу мувинга 1, и расстояние между мувингами позволяет открыть сделку, и у нас ордеров под мувингом меньше максимального, а также это нвоый бар
    if(Close[1]ma2 && Askstep*pt && count(OP_SELL,underMa) check=OrderSend(_Symbol,OP_SELL,0.1,Bid,0,0,0,"SEL L",magic,0,Red);//Открываем сделку
    }
    }
    double getIndi(int PeriodMa,int ShiftMa,ENUM_MA_METHOD MethodMa,ENUM_APPLIED_PRICE AppliedPriceMa,int shift){//Функция получения показаний индикатора
    return(NormalizeDouble(iMA(_Symbol,0,PeriodMa,Shif tMa,MethodMa,AppliedPriceMa,shift),dg));//получаем значение мувинг аверейджа
    }
    // Counter ************************************************** *************************************
    int count(int type, modes mode){//Функция подсчета ордеров по типу и нахождению над и под мувингом
    int cnt=0,x=0;//обнуляем счетчики
    if(OrdersTotal()>0){//если присутствуют ордера в рынке
    for(int i=OrdersTotal();i>=0;i--){//Начинаем перебор ордеров
    x=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);//выбираем ордер
    if(OrderSymbol()==_Symbol && OrderType()==type && OrderMagicNumber()==magic){//если ордер нашего эксперта
    if(mode==underMa){//Проверяем передаваемый метод анализа ордеров. Если он равен - под мувингом
    //проверяем, если цена открытия ордера под мувингом
    if(NormalizeDouble(OrderOpenPrice(),dg) cnt++;//Увеличиваем счетчик
    }
    else continue;//иначе продолжаем
    }
    if(mode==aboveMa){//Проверяем передаваемый метод анализа ордеров. Если он равен - над мувингом
    //проверяем, если цена открытия ордера нал мувингом
    if(NormalizeDouble(OrderOpenPrice(),dg)>getIndi(Pe riods,ShiftsMa,Method,AppliedPrice,iBarShift(_Symb ol,0,OrderOpenTime()))){
    cnt++;//Увеличиваем счетчик
    }
    else continue;//иначе продолжаем
    }
    }
    }
    return(cnt);//Возвращаем кол-во найденных ордеров
    }
    return(0);
    }
    // get New Bar ************************************************** ************************************************** ***********
    bool NewBar()//Функция поиска нового бара. Для того чтобы на одном баре открывался только один ордер
    {
    static datetime LastTime;//Вводим переменную последнего известного бара
    if(!GlobalVariableCheck("time"+_Symbol)){//проверяем, если у нас глобальная переменая, если вдруг был сбой
    LastTime = 0;//если нет то время последнего бара равно нулю
    }
    else{
    LastTime=(datetime)GlobalVariableGet("time"+_Symbo l);//Если нашли глобальную переменную загружаем ее как время последнего бара
    }
    if (iTime(Symbol(), Period(), 0) != LastTime)//если пришел новый бар
    {
    LastTime = iTime(Symbol(), Period(), 0);//Запоминаем его время
    GlobalVariableSet("time"+_Symbol,LastTime);//устанавливаем ег ов глобальную переменную
    return (true);//возвращаем флаг события о приходе новго бара
    }
    else
    return (false);//иначе говорим что нового бара нет
    }


    --------------------------------------------------
    ~разрабатываю Софт под мт4 на заказ.~
    --------------------------------------------------

  14. post_thanks Получено лайков: 1

    Сержант (02.11.2015)

  15. Линк#69
    Три Полоски
    no
     
    Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Сержант наивысший уровень репутации Аватар для Сержант
    Регистрация:
    14.09.2010
    Пол:
    Мужчина
    Сообщений:
    8,843
    Деньги за посты (Подробнее):
    16205 RUB
    Поставил лайков:
    26,011
    Получено лайков:  26,215
    в 8,313 сообщениях
    296%
    Цитата Сообщение от mql4coder Посмотреть сообщение
    Забирайте пробуйте. В коде все прокомментировано. Главное помните, пишите условия ГРАМОТНО!. Потому что условия для открытия ордера под мувингом к примеру, может выполнится а ордер открыться над мувингом, если цена была достаточно близко. Поэтому вводите доп параметры проверки, дабы избежать дестабилизации счетчика ордеров.
    Спасибище! Завтра буду испытывать


  16. Линк#70
    Кандидат форумных наук
    Stam хорошая репутация Stam хорошая репутация Stam хорошая репутация Аватар для Stam
    Регистрация:
    13.09.2015
    Пол:
    Мужчина
    Сообщений:
    1,009
    Деньги за посты (Подробнее):
    26592 RUB
    Поставил лайков:
    539
    Получено лайков:  252
    в 203 сообщениях
    25%
    Подскажите, а советники торгуют на бонусных рублёвых счетах? Ведь в окне тестера (свойства эксперта) где мы указываем размеры депозита там стоят только USD, EUR и другие иностранные валюты, а рубля нет. При выборе объёма лота при открытии ордера мы смотрим курс USD/RUR, и только потом открываем. А каким же образом советник будет ссылаться на этот курс, когда он находится в другой паре, а не в той в которой я собираюсь торговать?


  17. Линк#71
    Кандидат форумных наук
    В шоке
     
    work2it хорошая репутация work2it хорошая репутация work2it хорошая репутация Аватар для work2it
    Регистрация:
    01.10.2015
    Пол:
    Мужчина
    Сообщений:
    1,097
    Деньги за посты (Подробнее):
    24584 RUB
    Поставил лайков:
    14
    Получено лайков:  216
    в 196 сообщениях
    20%
    Цитата Сообщение от Stam Посмотреть сообщение
    Ведь в окне тестера (свойства эксперта) где мы указываем размеры депозита там стоят только USD, EUR и другие иностранные валюты, а рубля нет
    А вы считаете что для терминала есть разница какой валютной парой торговать? Ведь валюта депозита никогда не совпадает с торгуемой валютной парой. Если депозит в долларах, то вы можете торговать EURUSD, USDJPY, USDCHF по прямым курсам, а вот EURGBP, EURJPY, CADJPY - через cross-курсы. Например, EURUSD/GBPUSD = EURGBP. С рублевым депозитом все аналогично: EURRUB/USDRUB = EURUSD. Ну а в терминале можно получить стоимость тика торгуемого инструмента в валюте депозита:
    MQL код:
    MarketInfo(Symbol(),MODE_TICKVALUE)

    Последний раз редактировалось Gold; 03.11.2015 в 11:07.
    Реализую за ваши деньги ваши идеи на MQL - mql@fx-prog.ru

  18. post_thanks Получено лайков: 1

    Stam (03.11.2015)

  19. Линк#72
    V.I.P.
    no
     
    Kamazoov наивысший уровень репутации Kamazoov наивысший уровень репутации Kamazoov наивысший уровень репутации Kamazoov наивысший уровень репутации Kamazoov наивысший уровень репутации Kamazoov наивысший уровень репутации Kamazoov наивысший уровень репутации Kamazoov наивысший уровень репутации Kamazoov наивысший уровень репутации Kamazoov наивысший уровень репутации Kamazoov наивысший уровень репутации Аватар для Kamazoov
    Регистрация:
    13.03.2012
    Пол:
    Мужчина
    Сообщений:
    13,401
    Деньги за посты (Подробнее):
    213998 RUB
    Поставил лайков:
    33,318
    Получено лайков:  23,829
    в 9,890 сообщениях
    178%
    Скажите пожалуйста каким образом заставить советник работать на нескольких таймфреймах? Если например ставить его на один символ, но на несколько временных графиков, то если в нём присутствует ограничение на количество открытых позиций, будет он учитывать то, что открылось на этом символе, но на другом графике, с другим временным таймфреймом?


  20. Линк#73
    Кандидат форумных наук
    В думах
     
    mql4coder хорошая репутация mql4coder хорошая репутация mql4coder хорошая репутация mql4coder хорошая репутация mql4coder хорошая репутация Аватар для mql4coder
    Регистрация:
    28.05.2014
    Пол:
    Мужчина
    Сообщений:
    1,028
    Деньги за посты (Подробнее):
    9147 RUB
    Поставил лайков:
    51
    Получено лайков:  453
    в 387 сообщениях
    44%
    Цитата Сообщение от Kamazoov Посмотреть сообщение
    Скажите пожалуйста каким образом заставить советник работать на нескольких таймфреймах? Если например ставить его на один символ, но на несколько временных графиков, то если в нём присутствует ограничение на количество открытых позиций, будет он учитывать то, что открылось на этом символе, но на другом графике, с другим временным таймфреймом?
    Для такой цели в эксперте должен быть параметр magic - уникальный номер эксперта, который присваивается ордерам открытым именно им.
    Можете сколько угодно цеплять данный эксперт на разные пары или таймфреймы, но не забывайте менять magic каждому из экспертов.

    --------------------------------------------------
    ~разрабатываю Софт под мт4 на заказ.~
    --------------------------------------------------

  21. post_thanks Получено лайков: 1

    Kamazoov (03.11.2015)

  22. Линк#74
    В начале пути
    nil9 стараюсь положительно себя зарекомендовать Аватар для nil9
    Регистрация:
    09.02.2015
    Пол:
    Мужчина
    Сообщений:
    49
    Деньги за посты (Подробнее):
    370 RUB
    Поставил лайков:
    15
    Получено лайков:  16
    в 8 сообщениях
    33%
    Скажите пожалуйста, как написать, чтобы советник находил экстремумы за определенный период времени (допустим с 8:00 до 17:00)


  23. Линк#75
    Свой человек
    Поболтаем?
     
    coder-ex приемлемый уровень репутации coder-ex приемлемый уровень репутации Аватар для coder-ex
    Регистрация:
    28.09.2015
    Пол:
    Мужчина
    Сообщений:
    545
    Деньги за посты (Подробнее):
    9224 RUB
    Поставил лайков:
    100
    Получено лайков:  161
    в 137 сообщениях
    30%
    Цитата Сообщение от nil9 Посмотреть сообщение
    Скажите пожалуйста, как написать, чтобы советник находил экстремумы за определенный период времени (допустим с 8:00 до 17:00)
    В справке посмотрите работу функций iHighest и iLowest
    Если будет не понятно что то по их использованию, то спрашивайте.


  24. post_thanks Получено лайков: 1

    nil9 (05.11.2015)

  25. Линк#76
    В начале пути
    nil9 стараюсь положительно себя зарекомендовать Аватар для nil9
    Регистрация:
    09.02.2015
    Пол:
    Мужчина
    Сообщений:
    49
    Деньги за посты (Подробнее):
    370 RUB
    Поставил лайков:
    15
    Получено лайков:  16
    в 8 сообщениях
    33%
    MQL код:
    double max;
    int max = iHighest(NULL,0,MODE_HIGH,10,0);

    правильно ли я написал? я назначил max наибольшим значением последних 10 баров. Если советник начнет это делать в 17:00, то он найдет экстремум цены с 8:00 до 17:00

    Последний раз редактировалось Gold; 05.11.2015 в 14:37.

  26. Линк#77
    Свой человек
    Поболтаем?
     
    coder-ex приемлемый уровень репутации coder-ex приемлемый уровень репутации Аватар для coder-ex
    Регистрация:
    28.09.2015
    Пол:
    Мужчина
    Сообщений:
    545
    Деньги за посты (Подробнее):
    9224 RUB
    Поставил лайков:
    100
    Получено лайков:  161
    в 137 сообщениях
    30%
    Цитата Сообщение от nil9 Посмотреть сообщение
    MQL код:
    double max;
    int max = iHighest(NULL,0,MODE_HIGH,10,0);

    правильно ли я написал? я назначил max наибольшим значением последних 10 баров. Если советник начнет это делать в 17:00, то он найдет экстремум цены с 8:00 до 17:00
    у вас две переменные имеют одинаковое имя:
    MQL код:

    // double max; // это не нужно :)
    int _iIndH = iHighest(NULL,0,MODE_HIGH,10,0);

    Последний раз редактировалось Gold; 05.11.2015 в 14:38.

  27. Линк#78
    В начале пути
    nil9 стараюсь положительно себя зарекомендовать Аватар для nil9
    Регистрация:
    09.02.2015
    Пол:
    Мужчина
    Сообщений:
    49
    Деньги за посты (Подробнее):
    370 RUB
    Поставил лайков:
    15
    Получено лайков:  16
    в 8 сообщениях
    33%
    Цитата Сообщение от coder-ex Посмотреть сообщение
    у вас две переменные имеют одинаковое имя:
    MQL код:

    // double max; // это не нужно :)
    int _iIndH = iHighest(NULL,0,MODE_HIGH,10,0);
    тоесть если я напишу:
    MQL код:
    int max = iHighest(NULL,0,MODE_HIGH,10,0);
    int min = iLowest(NULL,0,MODE_LOW,10,0);
    vol = max-min

    то получу волатильность этих 10 баров?

    Последний раз редактировалось Gold; 05.11.2015 в 14:39.

  28. Линк#79
    Свой человек
    Поболтаем?
     
    coder-ex приемлемый уровень репутации coder-ex приемлемый уровень репутации Аватар для coder-ex
    Регистрация:
    28.09.2015
    Пол:
    Мужчина
    Сообщений:
    545
    Деньги за посты (Подробнее):
    9224 RUB
    Поставил лайков:
    100
    Получено лайков:  161
    в 137 сообщениях
    30%
    Цитата Сообщение от nil9 Посмотреть сообщение
    тоесть если я напишу:
    MQL код:
    int max = iHighest(NULL,0,MODE_HIGH,10,0);
    int min = iLowest(NULL,0,MODE_LOW,10,0);
    vol = max-min

    то получу волатильность этих 10 баров?
    если результат данного вычисления вы называете волатильностью 10 баров, то да

    Последний раз редактировалось Gold; 05.11.2015 в 14:39.

  29. post_thanks Получено лайков: 1

    nil9 (05.11.2015)

  30. Линк#80
    В начале пути
    nil9 стараюсь положительно себя зарекомендовать Аватар для nil9
    Регистрация:
    09.02.2015
    Пол:
    Мужчина
    Сообщений:
    49
    Деньги за посты (Подробнее):
    370 RUB
    Поставил лайков:
    15
    Получено лайков:  16
    в 8 сообщениях
    33%
    Цитата Сообщение от coder-ex Посмотреть сообщение
    если результат данного вычисления вы называете волатильностью 10 баров, то да
    MQL код:
    //+------------------------------------------------------------------+
    //| Установка ордеров |
    //+------------------------------------------------------------------+
    void SetOrders()
    {
    double ldStop=0,ldTake=0;
    int max = iHighest(NULL,0,MODE_HIGH,10,0);
    int min = iLowest(NULL,0,MODE_LOW,10,0);
    double vol = max-min;
    double TakeProfit=vol;
    double StopLoss=vol/2;
    double pAsk=Ask+DistanceSet*Point;
    double pBid=Bid-DistanceSet*Point;

    if(!ExistOrder(1))
    {
    if(StopLoss!=0) ldStop=pAsk+StopLoss*Point;
    if(TakeProfit!=0) ldTake=pAsk-TakeProfit*Point;
    SetOrder(OP_SELLLIMIT,pAsk,ldStop,ldTake,1);
    }
    if(!ExistOrder(2))
    {
    if(StopLoss!=0) ldStop=pBid-StopLoss*Point;
    if(TakeProfit!=0) ldTake=pBid+TakeProfit*Point;
    SetOrder(OP_BUYLIMIT,pBid,ldStop,ldTake,2);
    }

    Все равно что-то не так. Помогите найти ошибку. Ордер не открывает

    Последний раз редактировалось Gold; 05.11.2015 в 14:43.

  31. <a href="https://www.instaforex.com/ru/pamm_system">Форекс портал</a>
  32. Линк#81
    Знающий
    Все пучком
     
    Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Victor-Y отличная репутация Аватар для Victor-Y
    Регистрация:
    04.06.2012
    Пол:
    Мужчина
    Сообщений:
    3,220
    Деньги за посты (Подробнее):
    55919 RUB
    Поставил лайков:
    11,569
    Получено лайков:  7,724
    в 2,507 сообщениях
    240%
    Цитата Сообщение от nil9 Посмотреть сообщение
    Помогите найти ошибку
    Вы внимательно прочитали то, что Вам коллега coder-ex посоветовал?

    Цитата Сообщение от coder-ex Посмотреть сообщение
    В справке посмотрите работу функций
    Прочтите ещё раз, что Вам возвращают ф-ции iHighest и iLowest.


  33. post_thanks Получено лайков: 1

    coder-ex (05.11.2015)


Страница 4 из 384
Первая ... 3 4 5 14 ... Последняя ◄╝

Похожие темы

  1. Несколько слов о языке программирования mql4
    от Заз в разделе MQL-программирование, АТС
    Replies: 32
    Последнее сообщение: 26.09.2018, 11:31
  2. 55 вопросов по истории РОССИИ
    от НАИВНЫЙ-СЕРДЦИЕТ в разделе Свободное общение
    Replies: 15
    Последнее сообщение: 25.12.2015, 15:44
  3. [Архив] MQL4: Несколько вопросов от начинающего
    от Nick'Otin в разделе MQL-программирование, АТС
    Replies: 9235
    Последнее сообщение: 26.10.2015, 01:36