# Доработка ботов (советников, индикаторов) vol. 2

Раздел: Язык программирования MQL4
Автор темы: chocolate
Создана: 2014-10-02 12:48
Ответов: 33814 | Просмотров: 6670023
Страница 511 из 1691
Источник: https://forexsystemru.com/threads/77111/page-511

---

## olegkom — 2016-10-05 10:35

Уважаемые mobidik и Tank еще немного доработайте ваш индикатор-иногда стрелки пропускает.А так хорошее творение.

## поручик — 2016-10-05 11:28

> Цитата (AlenaS):
> ребята, посмотрите, пожалуйста советник.

[http://forexsystemsru.com/sovetniki-eksperty-foreks-roboty/25359-sovetnik-27-23-rule.html](http://forexsystemsru.com/sovetniki-eksperty-foreks-roboty/25359-sovetnik-27-23-rule.html)

## dim777777 — 2016-10-05 11:31

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

## Karabas BARABAS — 2016-10-05 12:46

друзья, кто в курсе подскажите...
формула ниже, отвечает за отображение свопа на экране...
  double swaplong,swapshort;
  swaplong=NormalizeDouble(MarketInfo(Symbol(),18),2);
  swapshort=NormalizeDouble(MarketInfo(Symbol(),19),2);
но отображает в долларах, а мне нужно в рублях (счет рублевый)

может кто подскажет как сделать его (своп) в валюте депозита...
:please:

## gek — 2016-10-05 12:50

> Цитата (Rey):
> Добрый день, товарищи программисты. Добавьте, пожалуйста в советник размер фиксированного лота, а то он сам выставляет лот.

Интересно,а почему ты так его обозвал(**отлично работает**)?
Какая пара,тайм,брокер.

## kodevi — 2016-10-05 13:23

можно сделать чтоб сигналил на 1й секунде нового бара а не через время. Либо сигналил на текущем баре.индюк прилагаю

## nikpilot — 2016-10-05 14:14

**Доработка индикатора**

Уважаемые программисты, доработайте индикатор пожалуйста.

Это индикатор уровней, но он также отрисовывает и вертикальные линии, надо сделать так, чтобы он не отрисовывал ни одной вертикальной линии.
На скриншоте я показал линию, которую индикатор больше не должен выводить на график.

Заранее спасибо.

## Fillelin — 2016-10-05 14:34

> Цитата (nikpilot):
> Уважаемые программисты, доработайте индикатор пожалуйста.
>
> Это индикатор уровней, но он также отрисовывает и вертикальные линии, надо сделать так, чтобы он не отрисовывал ни одной вертикальной линии.
> На скриншоте я показал линию, которую индикатор больше не должен выводить на график.
>
> Заранее спасибо.

**VLine  =  false**

## Fillelin — 2016-10-05 15:02

> Цитата (Karabas BARABAS):
> друзья, кто в курсе подскажите...
> формула ниже, отвечает за отображение свопа на экране...
>   double swaplong,swapshort;
>   swaplong=NormalizeDouble(MarketInfo(Symbol(),18),2);
>   swapshort=NormalizeDouble(MarketInfo(Symbol(),19),2);
> но отображает в долларах, а мне нужно в рублях (счет рублевый)
>
> может кто подскажет как сделать его (своп) в валюте депозита...
> :please:

Попробуйте вместо: **Symbol()** прописать нужную вам валюту: *swaplong=NormalizeDouble(MarketInfo(***"USDRUB"***,18),2 )*, имеющуюся в списке **"Обзор рынка"**.

## Karabas BARABAS — 2016-10-05 15:09

> Цитата (Fillelin):
> Попробуйте вместо: **Symbol()** прописать нужную вам валюту: *swaplong=NormalizeDouble(MarketInfo(***"USDRUB"***,18),2 )*, имеющуюся в списке **"Обзор рынка"**.

не помогло,...
рисует нули

## Karabas BARABAS — 2016-10-05 15:31

> Цитата (Fillelin):
> Попробуйте вместо: **Symbol()** прописать нужную вам валюту: *swaplong=NormalizeDouble(MarketInfo(***"USDRUB"***,18),2 )*, имеющуюся в списке **"Обзор рынка"**.

как уже писал - не помогло, но я извернулся и умножил это на 63, т.е. примерный курс рубля и тут пришла мысль, а что если умножить на курс, но как его прописать в коде не знаю...

аууууу, мобидик, танк помогите !!!!!

## mobidik — 2016-10-05 15:48

> Цитата (Karabas BARABAS):
> как уже писал - не помогло, но я извернулся и умножил это на 63, т.е. примерный курс рубля и тут пришла мысль, а что если умножить на курс, но как его прописать в коде не знаю...
>
> аууууу, мобидик, танк помогите !!!!!

Пробуй так:
double swaplong;
double swaplongRU;

swaplong = NormalizeDouble(MarketInfo(Symbol(),18),2);
swaplongRU = swaplong*iClose("USDRUB",PERIOD_M1,0);

## Чор — 2016-10-05 15:54

**Очень далёкооо от графика**

Помогите, добавить отступ от стрелок.Пожалуйста)

## Karabas BARABAS — 2016-10-05 16:38

> Цитата (mobidik):
> Пробуй так:
> double swaplong;
> double swaplongRU;
>
> swaplong = NormalizeDouble(MarketInfo(Symbol(),18),2);
> swaplongRU = swaplong*iClose("USDRUB",PERIOD_M1,0); 

спасибо, что откликнулся...
но сделал как ты сказал - показывает нули...

вот какая конструкция получилась:

//+------------------------------------------------------------------+
void ShowSwaps()
{

  double swaplong, swaplongRU, swapshort, swapshortRU; 

  swaplong=NormalizeDouble(MarketInfo(Symbol(),18),2);
  swaplongRU = swaplong*iClose("USDRUB",PERIOD_H1,1); 
  swapshort=NormalizeDouble(MarketInfo(Symbol(),19),2);
  swapshortRU = swapshort*iClose("USDRUB",PERIOD_H1,1); 
  
  if (swaplongRU>=0)
    {
      DrawLABEL("NoLoss__SwapBuy",1,240,455,DarkGray,StringConcatenate("  ", DoubleToStr( swaplongRU ,2)));
    }
  else
    {
      DrawLABEL("NoLoss__SwapBuy",1,240,455,Black,StringConcatenate(" -", DoubleToStr(-swaplongRU ,2)));
    }
    
  if (swapshortRU>=0)
    {
      DrawLABEL("NoLoss__SwapSell",1,240,465,DarkGray,StringConcatenate("  ", DoubleToStr( swapshortRU ,2)));
    }
  else
    {
      DrawLABEL("NoLoss__SwapSell",1,240,465,Black,StringConcatenate(" -", DoubleToStr(-swapshortRU ,2)));
    }
    
}

может, что не так ?

## AlanG — 2016-10-05 16:44

> Цитата (gek):
> Интересно,а почему ты так его обозвал(отлично работает)?
> Какая пара,тайм,брокер.

Д1 там все работает ;)

## mobidik — 2016-10-05 17:41

> Цитата (Karabas BARABAS):
> спасибо, что откликнулся...
> но сделал как ты сказал - показывает нули...
>
> вот какая конструкция получилась:
> 
> //+------------------------------------------------------------------+
> void ShowSwaps()
> {
>
>   double swaplong, swaplongRU, swapshort, swapshortRU;
>
>   swaplong=NormalizeDouble(MarketInfo(Symbol(),18),2);
>   swaplongRU = swaplong*iClose("USDRUB",PERIOD_H1,1);
>   swapshort=NormalizeDouble(MarketInfo(Symbol(),19),2);
>   swapshortRU = swapshort*iClose("USDRUB",PERIOD_H1,1);
>
>   if (swaplongRU>=0)
>     {
>       DrawLABEL("NoLoss__SwapBuy",1,240,455,DarkGray,StringConcatenate("  ", DoubleToStr( swaplongRU ,2)));
>     }
>   else
>     {
>       DrawLABEL("NoLoss__SwapBuy",1,240,455,Black,StringConcatenate(" -", DoubleToStr(-swaplongRU ,2)));
>     }
>
>   if (swapshortRU>=0)
>     {
>       DrawLABEL("NoLoss__SwapSell",1,240,465,DarkGray,StringConcatenate("  ", DoubleToStr( swapshortRU ,2)));
>     }
>   else
>     {
>       DrawLABEL("NoLoss__SwapSell",1,240,465,Black,StringConcatenate(" -", DoubleToStr(-swapshortRU ,2)));
>     }
>
> }
> 
>
> может, что не так ?

Да все работает, вот тебе скрипт, изучай. Единственное что придется сделать, так это, если есть, указать суфикс/префикс, в моем терминале это "с":

## Karabas BARABAS — 2016-10-05 17:59

> Цитата (mobidik):
> Да все работает, вот тебе скрипт, изучай. Единственное что придется сделать, так это, если есть, указать суфикс/префикс, в моем терминале это "с":

спасибо все заработало...
все верно я префикс не вставлял...:facepalm:

## FOTINI — 2016-10-05 18:35

Добрый день!
Ребята посмотрите пожалуйста, можно ли сделать чтобы советник открывал ордера сразу по стрелке или на втором кирпиче, сейчас ордера открываются не раньше чем на 6-7 кирпиче, вне зависимости от размера кирпича и Тм...
на скрине стрелки советника зеленого и красного цвета...
в настройках ставлю период 1,2 - 2,27.

Спасибо.

## FOTINI — 2016-10-05 20:43

> Цитата (FOTINI):
> Добрый день!
> Ребята посмотрите пожалуйста, можно ли сделать чтобы советник открывал ордера сразу по стрелке или на втором кирпиче, сейчас ордера открываются не раньше чем на 6-7 кирпиче, вне зависимости от размера кирпича и Тм...
> на скрине стрелки советника зеленого и красного цвета...
> в настройках ставлю период 1,2 - 2,27.
>
>
> Спасибо.

*hi*вопрос снят.... сделано..работает!!:)

## gek — 2016-10-05 20:50

> Цитата (AlanG):
> Д1 там все работает ;)

AlanG,привет!
Вроде ты прикрутил магик.
Одну пару открыл,на других тишина.

---

Следующая страница: https://forexsystemru.com/threads/77111/page-512
