[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 376

 
Здравствуйте. Народ, помогите плиз - закопал куда-то шпорку по переделке индикаторов. Как сделать расчет индикатора только  раз в бар (на каждом тайме)?  Помню - там прерыватель RETURN сразу после старта стоял - а условие не помню хоть убейте.
 
Во нашел - 
Taim0 = iTime(NULL,0,0);
       if (Taim0 == taim_open)
        {
        return;
        } 

И в конце функции старт поставить 

taim_open = Taim0; 
Всем спасибо. ;-)
 
locol91 писал(а) >>
Во нашел -

И в конце функции старт поставить

Всем спасибо. ;-)

https://www.mql5.com/ru/forum/118402

 

Установил три новых терминала разных брокеров чтобы проверить Советник в условиях реальной торговли на Демо и вдруг обнаружил что

на всех трех ордера не открываются, а выскакивает "Ошибка 130" = Invalid Stops. Чертовщина какая-то - на уже имевшихся до этого платформах все работало.

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

одновременно со SL и TP (пока не 100%, но думаю что в этом дело).

- Кто-нибудь сталкивался с подобным? Если верно, то "Invalid Stops" не очень то помогает..

- Тестер платформы никак не связан с условиями брокера?

 

chief2000 писал(а) >>

...- Тестер платформы никак не связан с условиями брокера?

А как же! Тестер работает и должен работать по условиям своего терминала от конкретного брокера.

 

Видимо "работает" и "должен" не синхронизированы :)

Сегодня один из "проблемных" брокеров подтвердил что у них запрещено открывать реальные ордера с одновременно указанными СЛ и ТП,

а в их тестере это было возможно (есть и Примеры др. случаев с тестерами др. брокеров).

 

Друзья, добрый день.


Подскажите, пожалуйста, по такой ситуации.


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

Возникает вопрос:

Где можно взять котировки DJIA, DAX, Nikkei, американских и европейских бондов (например, 10 лет), а также т.н. "индекс доллара", и как загрузить их в терминал, чтобы в терминале можно было использовать их для построения графиков цен, использовать их, как данные.


Посоветуйте, если у вас будет возможность.


Заранее большое спасибо.
 
Morzh09 писал(а) >>

Друзья, добрый день.

Подскажите, пожалуйста, по такой ситуации.

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

Возникает вопрос:

Где можно взять котировки DJIA, DAX, Nikkei, американских и европейских бондов (например, 10 лет), а также т.н. "индекс доллара", и как загрузить их в терминал, чтобы в терминале можно было использовать их для построения графиков цен, использовать их, как данные.

Посоветуйте, если у вас будет возможность.

Заранее большое спасибо.

Загрузите их с сервера Альпари. DJI, DAX, Nikkei, индекс доллара у них есть. Сделать это можно с демосервера Альпари. Адрес поищите на их сайте. Либо установите их версию МТ4 и откройте демосчет. Евробондов у них нет.

 

Люди, помогите!!! Мозги сломал, но знаний не хватает. В индикаторе использую функции WindowPriceMax и WindowPriceMin. Беда в том, что при переходе на другой таймфрейм для начального расчета индикатора эти функции берут данные с предыдущего окна (например, предыдущий график был 4Н и мах и мин окна были допустим 1.4000 и 1.2000, перехожу на D, и мах и мин окна становятся 1.5000 и 1.1000, но сначала индикатор расчитывается по старым значениям мах и мин, и только с приходом нового тика считает новые значения. А нового тика можно ждать долго, например ночью... Как обойти эту заморочку?

//***************************************
int init() {
IndicatorBuffers(3);
SetIndexStyle(0,DRAW_LINE);
    SetIndexBuffer(0,zz);
    SetIndexBuffer(1,fxH);
    SetIndexBuffer(2,fxL);
if (Points!=0 && Percent==0) di=10*Points*Point;
return(0); }
//-----------------------------------------------
int deinit(){ ObjectsDeleteAll(0,21); return(0);}
//********************************************************
int start() {
int i,n,cb0;
int counted_bars=IndicatorCounted();
if (counted_bars<0) {Print("Indicator Error (Counted bars < 0)!" ); return(-1); }
if (Bars<100) {Print("Indicator Error (Bars < 100)!" ); return(-1); }
int cbi=Bars-2;
if (counted_bars>2) {cbi=Bars-counted_bars; }
//======================================================================================================================
for (i=cbi; i>=0; i--) {
//-----------------Functions------------------------------
fxH[i]=High[i];  
fxL[i]=Low[i];
Max=(WindowPriceMax()-WindowPriceMin())/100;
 
kon12 >>:

Люди, помогите!!! Мозги сломал, но знаний не хватает. В индикаторе использую функции WindowPriceMax и WindowPriceMin. Беда в том, что при переходе на другой таймфрейм для начального расчета индикатора эти функции берут данные с предыдущего окна (например, предыдущий график был 4Н и мах и мин окна были допустим 1.4000 и 1.2000, перехожу на D, и мах и мин окна становятся 1.5000 и 1.1000, но сначала индикатор расчитывается по старым значениям мах и мин, и только с приходом нового тика считает новые значения. А нового тика можно ждать долго, например ночью... Как обойти эту заморочку?

Могу предложить такой трюк на проверку:

посмотрите, правильно ли работают в Вашей ситуации функции WindowFirstVisibleBar() и WindowBrsPerChart(). Если возвращаемые ими значения соответствуют новому графику, то посчитать максимальное и минимальное значения цены на графике можно используя ArrayMaximum() и ArrayMinimum()