Форум трейдеров » Торговые роботы, советники, индикаторы » Эксперты, индикаторы, мтс, и т.д. - бесплатные
+ Подписаться
Страница 10 из 130 ПерваяПервая ... 891011122060110 ... ПоследняяПоследняя
  1. 242
    Комментарии
    6
    Темы
    242
    Репутация Pro
    Аватар для fion  
    В начале пути

    3 Медалей
    Цитата Сообщение от Алексей Угаров Посмотреть сообщение
    fion, это особенность МТ при исполнении ордеров Market Watch. Выставлять стоп и профит приходится после открытия позиции.
    Вы имеете ввиду , это особенность котирования в Вашей компании? В других ДЦ все ставится без проблем. A почему с сервера не приходит инфа о минимальных стопах , мин. лотах и шаге изменения лота?
  2. 144
    Комментарии
    7
    Темы
    149
    Репутация Pro
     
    В начале пути

    3 Медалей
    Все параметры типа MarketInfo(Symbol(),MODE_MINLOT) (а также MODE_MAXLOT, MODE_LOTSTEP и т.д.) приходят с сервера и правильно отображаются.
    Смотрите код советника.
  3. 242
    Комментарии
    6
    Темы
    242
    Репутация Pro
    Аватар для fion  
    В начале пути

    3 Медалей
    Я смотрю скриптом.
    Код:
    // Инфо.mq4
    // Скрипт
    // Информация о счете, свойства символа, проверка состояния
    #property copyright "mandorr@gmail.com"
    #include <WinUser32.mqh>
    void start()
    {
       string symbol=Symbol();
       string market=MarketType(symbol);
       string сurrency=AccountCurrency();
       string base=symbol; if (market=="Forex") base=StringSubstr(symbol,0,3);
       double freemargin=AccountFreeMargin();
       double lotsize_base=MarketInfo(symbol,MODE_LOTSIZE);
       double lotmargin_base=0;
       double lotmargin_сurrency_buy =0;
       double lotmargin_сurrency_sell=0;
       double ask=MarketInfo(symbol,MODE_ASK);
       double bid=MarketInfo(symbol,MODE_BID);
       if (market=="Forex")
       {
          if (base==сurrency) {ask=1; bid=1;}
          else
          {
             ask=MarketInfo(base+сurrency,MODE_ASK);
             bid=MarketInfo(base+сurrency,MODE_BID);
          }
       }
       double leverage=0;
       if (market=="Forex"  ) leverage=AccountLeverage();
       if (market=="Metalls") leverage=10;
       if (market=="CFD"    ) leverage=10;
       if (leverage>0) lotmargin_base=lotsize_base/leverage;
       lotmargin_сurrency_buy =lotmargin_base*ask;
       lotmargin_сurrency_sell=lotmargin_base*bid;
       if (market=="Futures")
       {
          lotmargin_base=FuturesLotMargin(symbol);
          lotmargin_сurrency_buy =lotmargin_base;
          lotmargin_сurrency_sell=lotmargin_base;
       }
       string lotmargin_buy =DoubleToStr(lotmargin_сurrency_buy ,2)+" "+сurrency;
       string lotmargin_sell=DoubleToStr(lotmargin_сurrency_sell,2)+" "+сurrency;
       if (market=="Forex" && base!=сurrency)
       {
          lotmargin_buy =lotmargin_buy +" ("+DoubleToStr(lotmargin_base,2)+" "+base+")";
          lotmargin_sell=lotmargin_sell+" ("+DoubleToStr(lotmargin_base,2)+" "+base+")";
       }
       double freelots_buy =0;
       double freelots_sell=0;
       if (lotmargin_сurrency_buy >0 && freemargin>0) freelots_buy =freemargin/lotmargin_сurrency_buy ;
       if (lotmargin_сurrency_sell>0 && freemargin>0) freelots_sell=freemargin/lotmargin_сurrency_sell;
       double minlot=MarketInfo(symbol,MODE_MINLOT);
       int count_buy =0; if (minlot>0) count_buy =freelots_buy /minlot;
       int count_sell=0; if (minlot>0) count_sell=freelots_sell/minlot;
       freelots_buy =minlot*count_buy ;
       freelots_sell=minlot*count_sell;
       double tickvalue=MarketInfo(symbol,MODE_TICKVALUE);
       double swap_buy =0; if (minlot>0) swap_buy =MarketInfo(symbol,MODE_SWAPLONG )/minlot;
       double swap_sell=0; if (minlot>0) swap_sell=MarketInfo(symbol,MODE_SWAPSHORT)/minlot;
       double swap_buy_ticks =0; if (tickvalue>0) swap_buy_ticks =swap_buy /tickvalue;
       double swap_sell_ticks=0; if (tickvalue>0) swap_sell_ticks=swap_sell/tickvalue;
       string type="Реал"; if(IsDemo()) type="Демо";
       string field="          ";
       string msg=""
            +"Компания: "+AccountCompany()+field
       +"\n"+"Имя владельца счета: "+AccountName()+field
       +"\n"+"Тип счета: "+type+field
       +"\n"+"Номер счета: "+AccountNumber()+field
       +"\n"+"Валюта счета: "+сurrency+field
       +"\n"+"Плечо: "+AccountLeverage()+field
       +"\n"+"Баланс: "+DoubleToStr(AccountBalance(),2)+" "+сurrency+field
       +"\n"+"Средства: "+DoubleToStr(AccountEquity(),2)+" "+сurrency+field
       +"\n"+"Залог: "+DoubleToStr(AccountMargin(),2)+" "+сurrency+field
       +"\n"
       +"\n"+"Символ: "+symbol+field
       +"\n"+"Рынок: "+market+field
       +"\n"+"Свободно лотов для BUY : "+DoubleToStr(freelots_buy,1)+field
       +"\n"+"Свободно лотов для SELL: "+DoubleToStr(freelots_sell,1)+field
       +"\n"+"Залог за лот для BUY : "+lotmargin_buy+field
       +"\n"+"Залог за лот для SELL: "+lotmargin_sell+field
       +"\n"+"Своп за лот для BUY : "+DoubleToStr(swap_buy,2)+" "+сurrency+" ("+DoubleToStr(swap_buy_ticks,2)+" pips)"+field
       +"\n"+"Своп за лот для SELL: "+DoubleToStr(swap_sell,2)+" "+сurrency+" ("+DoubleToStr(swap_sell_ticks,2)+" pips)"+field
       +"\n"+"Шаг изменения цены лота: "+DoubleToStr(tickvalue,2)+" "+сurrency+" (1 pips)"+field
       +"\n"+"Минимальный лот: "+DoubleToStr(minlot,1)+field
       +"\n"+"Шаг изменения лота: "+DoubleToStr(MarketInfo(symbol,MODE_LOTSTEP),1)+field
       +"\n"+"Спред: "+DoubleToStr(MarketInfo(symbol,MODE_SPREAD),0)+field
       +"\n"+"Точность: "+DoubleToStr(MarketInfo(symbol,MODE_DIGITS),0)+field
       +"\n"+"Уровень стопов: "+DoubleToStr(MarketInfo(symbol,MODE_STOPLEVEL),0)+field
       ;
       string title="Информация о счете и свойства символа";
       MessageBox(msg,title,MB_OK|MB_ICONINFORMATION);
    }
    string MarketType (string symbol)
    {
       int len=StringLen(symbol);
       string base;
       if (StringSubstr(symbol,0,1)=="_") return ("Indexes");
       if (StringSubstr(symbol,0,1)=="#")
       {
          base=StringSubstr(symbol,len-1,1);
          if (base=="0") return ("Futures");
          if (base=="1") return ("Futures");
          if (base=="2") return ("Futures");
          if (base=="3") return ("Futures");
          if (base=="4") return ("Futures");
          if (base=="5") return ("Futures");
          if (base=="6") return ("Futures");
          if (base=="7") return ("Futures");
          if (base=="8") return ("Futures");
          if (base=="9") return ("Futures");
          return ("CFD");
       }
       else
       {
          if (symbol=="GOLD"  ) return ("Metalls");
          if (symbol=="SILVER") return ("Metalls");
          if (len==6)
          {
             base=StringSubstr(symbol,0,3);
             if (base=="AUD") return ("Forex");
             if (base=="CAD") return ("Forex");
             if (base=="CHF") return ("Forex");
             if (base=="EUR") return ("Forex");
             if (base=="GBP") return ("Forex");
             if (base=="LFX") return ("Forex");
             if (base=="NZD") return ("Forex");
             if (base=="SGD") return ("Forex");
             if (base=="USD") return ("Forex");
          }
       }
       return ("");
    }
    double FuturesLotMargin (string symbol)
    {
       double result=0;
       string сurrency=AccountCurrency();
       double bid=1; if (сurrency!="USD") bid=MarketInfo(сurrency+"USD",MODE_BID);
       int len=StringLen(symbol);
       string base=StringSubstr(symbol,0,len-2);
       if (base=="#ENQ" ) result=bid*3750;
       if (base=="#EP"  ) result=bid*3938;
       if (base=="#SLV" ) result=bid*5063;
       if (base=="#GOLD") result=bid*2363;
       if (base=="#CL"  ) result=bid*4725;
       if (base=="#NG"  ) result=bid*8100;
       if (base=="#W"   ) result=bid* 608;
       if (base=="#S"   ) result=bid*1148;
       if (base=="#C"   ) result=bid* 473;
       return (result);
    }
    // End
  4. 144
    Комментарии
    7
    Темы
    149
    Репутация Pro
     
    В начале пути

    3 Медалей
    В скрипте в функциях DoubleToStr() ставится точность одна цифра после запятой, при мин. лоте 0,01 такая функция выдаст 0.
    DoubleToStr(minlot,1) надо поменять на DoubleToStr(minlot,2), и аналогично везде, где это нужно, посмотреть необходимую точность.

    А уровень стопов действительно 0, можно ставить отложенки внутри спреда...
  5. 242
    Комментарии
    6
    Темы
    242
    Репутация Pro
    Аватар для fion  
    В начале пути

    3 Медалей
    Цитата Сообщение от B@ss Посмотреть сообщение
    В скрипте в функциях DoubleToStr() ставится точность одна цифра после запятой, при мин. лоте 0,01 такая функция выдаст 0.
    DoubleToStr(minlot,1) надо поменять на DoubleToStr(minlot,2), и аналогично везде, где это нужно, посмотреть необходимую точность.

    А уровень стопов действительно 0, можно ставить отложенки внутри спреда...
    Спасибо. Вроде разобрался.
  6. 5
    Комментарии
    0
    Темы
    5
    Репутация Pro
    Аватар для Berimor  
    Новичок

    2 Медалей
    Так получилось,что торгую на рынкете уже год,а в программировании полный ноль.Как то было без надобности.
    Сейчас перевожу депо в WHC,надо переписывать советников под раздельное открытие позы и tp/sl.
    Бегло пролистал форум,наглядного примера для чайников не нашол:cry:
    Ежели кто владеющий программингом заточит сей советник под WHC,
    мой нижайший респект.
    Вложения Вложения
  7. 376
    Комментарии
    5
    Темы
    377
    Репутация Pro
    Аватар для Вячеслав Лунёв  
    В начале пути

    3 Медалей
    Цитата Сообщение от Berimor Посмотреть сообщение
    Так получилось,что торгую на рынкете уже год,а в программировании полный ноль.Как то было без надобности.
    Сейчас перевожу депо в WHC,надо переписывать советников под раздельное открытие позы и tp/sl.
    Бегло пролистал форум,наглядного примера для чайников не нашол:cry:
    Ежели кто владеющий программингом заточит сей советник под WHC,
    мой нижайший респект.
    А где ещё одна часть экспа? Файл по имени: b-Lots.mqh
  8. 1,498
    Комментарии
    25
    Темы
    1499
    Репутация Pro
    Аватар для Эдуард Цой  
    Мастер форумных наук

    5 Медалей
    Цитата Сообщение от DEan Посмотреть сообщение
    А где ещё одна часть экспа? Файл по имени: b-Lots.mqh
    У меня такой есть в коллекции. Надеюсь, это то, что нужно.
    Вложения Вложения
    • Тип файла: rar b-Lots.rar (1.9 Кб, Просмотров: 173)
  9. 5
    Комментарии
    0
    Темы
    5
    Репутация Pro
    Аватар для Berimor  
    Новичок

    2 Медалей
    Держи...
    Файл закинуть в experts\include\
    Вложения Вложения
    • Тип файла: rar b-Lots.rar (858 байт, Просмотров: 169)
  10. 376
    Комментарии
    5
    Темы
    377
    Репутация Pro
    Аватар для Вячеслав Лунёв  
    В начале пути

    3 Медалей
    Вот держи. Прогнал пару раз на истории, вроде всё ОК, но потесть сам. Если что - пиши.
    Вложения Вложения

Вверх
РегистрацияX

чтобы писать, читать, комментировать