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

 
alsu писал(а) >>
int start(){
   static int nevtime=0;
   if (nevtime==Time[0]) return(0);
   nevtime=Time[0];

// Ваш код

   return(0);
}
В данном примере при первом запуске старт будет не с начала бара. На всех последующих в начале формирования новго бара.
 

ну вот опять, ставлю любой из этих кодов и получаеться вот это:

 

сделок не хватает! И тут не дело в алгоритме, советник открывает бай когда стахостик сигналет ниже нижнего уровня,хочу избавить советник от ложных сигналов перерисовки стахостика, но как?

double Ind11=iStochastic(NULL,0,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_MAIN,0);
double Ind12=iStochastic(NULL,0,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_SIGNAL,0);

double Ind13=iStochastic(NULL,0,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_MAIN,1);
double Ind14=iStochastic(NULL,0,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_SIGNAL,1);



 if(Ind11<20 && Ind11>Ind12 && Ind13<Ind14)
  {
   
  OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,"",16384,0,Green);
   
  }

 
Summer >>:

ну вот опять, ставлю любой из этих кодов и получаеться вот это:

сделок не хватает! И тут не дело в алгоритме, советник открывает бай когда стахостик сигналет ниже нижнего уровня,хочу избавить советник от ложных сигналов перерисовки стахостика, но как?

double Ind11=iStochastic(NULL,0,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_MAIN,0);
double Ind12=iStochastic(NULL,0,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_SIGNAL,0);

double Ind13=iStochastic(NULL,0,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_MAIN,1);
double Ind14=iStochastic(NULL,0,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_SIGNAL,1);



if(Ind11<20 && Ind11>Ind12 && Ind13<Ind14)
{

OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,"",16384,0,Green);

}

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

 

sanyooooook, эм...  тогда как решить проблему перерисовки не получая такого дефекта или как поменять алгоритм открытия сделки что бы всё работало? 

Добавлено:

попробывал поставить что бы работало по закрытым барам, т.е. заместо 0 поставил 1 - заместо 1 поставил 2, но всё равно как не исполняло все сигналы, так и не исполняет и в этом случае.


Файлы:
2.mq4  2 kb
 

Допустим есть несколько счетов у одного ДЦ и соответственно нужно на каждый счет поставить по отдельному терминалу.

Но котировки-то на входе у всех одинаковые и это только зря нагружают трафик.

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

 
как из числа double преобразовать в int, есть число 0,0030 полученное путем вычисления двух уровней цены, хочу использовать в трале, но не могу понять как вывести 0,0030 в целое число 30, путем умножения на 10000 выходит целое число 30, преобразовал вот так через int x = 0,0030*10000; но трал не видит - х, может есть другой выход?
 

Вообщем пару глупых на первый взгляд вопросов...


1) Что вообще показывается на графике цены? Величина Open или Close ? Или какое-то среднее?


2) Как выполнить условие пересечения? Ибо условие сравнения двух величин приводит к открытие множеста ордеров, но при этом грубо по времени ограничивать не хочется открытие...


3) Какие есть вообще функции преобразования типов e.g. IntToStr IntToReal, как в Delphi к примеру, тут я такого не нашел..

 

sanyooooook писал(а) >>

if (Volume[0]>1)return;
добавить код в начало int start()

работает без сбоев только в тестере

 
alsu >>:

работает без сбоев только в тестере

почему только в тестере? работать должно и на реале и на дэмо

 
sanyooooook >>:

почему только в тестере? работать должно и на реале и на дэмо

в реале на быстром рынке первый тик не обязательно 1