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

 
Vinin >>:

Что-то примерно так у меня получилось.

БОЛЬШОЕ СПАСИБО!

 

Добрый день!

Сегодня встал на демо на Алпари и удивился пяти знакам после запятой. Пришлось переделывать советник, добавлять десятку.

Если не трудно объясните разницу между пятью и четырьмя знаками, или дайте ссылку где об этом можно почитать.

 
gvi2504 >>:

Добрый день!

Сегодня встал на демо на Алпари и удивился пяти знакам после запятой. Пришлось переделывать советник, добавлять десятку.

Если не трудно объясните разницу между пятью и четырьмя знаками, или дайте ссылку где об этом можно почитать.


Я делаю так - в самом начале start() (наверное лучше в init() ?) задаю:

// ```````````````````````````````
   double PointX = 0;
   if(Digits==5 || Digits==3) {
      PointX = Point * 10;
   }
   if(Digits==4 || Digits==2) {
      PointX = Point;
   }
// ```````````````````````````````


А затем вместо "Point" использую "PointX".

 
chief2000 >>:


Я делаю так - в самом начале start() (наверное лучше в init() ?) задаю:


А затем вместо "Point" использую "PointX".





Большое спасибо.

 
Shniperson писал(а) >>
Господа. а как сделать чтобы при торговле на Н4 учитывались значения баров на Н1 ? например if(......&& Close[0](бар Н1)>High[1](бар Н1) ???????????

примерно вот.. однако это пример рабочего кода по макд и ) || ( это подчеркнутое место объединяет условие конкретного кода

индикатор>0 && индикатор<=Signalиндикатор && индикатор>Signalиндикатор объединяет Н4 с Н1 в том смысле что ситуация в Н4 и в Н1 для макд одинакова (или как раз нет это уже зависит от <=0 (меньше либо равно нулю/можно макду) к тому же &&(одновремеено то есть) позволяет еще усложнить взаимосвязь )

MacdCurrent=индикатор_MAIN,0);
MacdPrevious=индикатор_MAIN,1);
SignalCurrent=индикатор_SIGNAL,0);
SignalPrevious=индикатор SIGNAL,1);

total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) // check for symbol
{
if(OrderType()==OP_BUY) // long position is opened
{
if((индикатор>0 && индикатор<=Signalиндикатор && индикатор>Signalиндикатор) || (индикатор<=0 && индикатор>0))
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position

однако код это чужой и изменить его сам я неспособен, это точно.

 
JEKA писал(а) >>
Здрасти,вопрос наверно более для продвинутых програмеров чем для начинающих типо меня,хотя моя задумка пригодиться и тем и другим!И так суть вопроса, возможно-ли написать индикатор или советник операющийся на два индикатора? 5_ZZ_Semafor.ex4,V-TBv6.ex4 Я бы хотел и сам его написать но к сожиления я не владею такими знаниями,и хотел-бы обратится за помощью к тем кому тоже интиресна эта идея или к тем кто обладает нужными в этой области познаниями.Зарание примного благодарен, и надеюсь созданая мной тема не останется без вашего внимания.

есть торгующий советник по ма и макд.

ма на открытие, макд на закрытие

ма просто на открытие в коде для опен позишн (в скриптах поставляемых вместе стерминалом это как раз ма и макд) выделен блок в него идет индикатор (ма) на клоуз (макд).

если нужно сразу два то в нужном блоке объявляется два индикатора далее их значенея объединяются через

void CheckForClose()
{
double MacdCurrent, MacdPrevious, SignalCurrent;
double SignalPrevious;
int cnt, ticket, total;

MacdCurrent=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,0);
MacdPrevious=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,1);
SignalCurrent=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_SIGNAL,0);
SignalPrevious=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_SIGNAL,1);

total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) // check for symbol
{
if(OrderType()==OP_BUY) // long position is opened
{
if((*>0 && *<=* && *>* ) || (*<=0 && *>0))
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
tek_mode=1;
return(0); // exit
}

}
else // go to short position
{
if((Macd*<0 && Macd*>=* && *<* ) || (*>=0 && *<0))
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
tek_mode=-1;
return(0); // exit
}
}
}
}
}
//+------------------------------------------------------------------+

где tek_mode=-1; назначена для обрезания моментального повторак ставки. а || и && как раз позволяют учесть две группы условий одновремено как одно единственое.

 

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

Как из собственной DLL грамотно и максимально рационально забрать тики из МТ4 в Матлаб?

Кто-нибудь наверняка делал такое.

из МТ в общих чертах:

start()

  {

     fMyDll(Bid);    // передаю в функцию из моей длл бид с каждым новым тиком

  }

 как дальше? какие методы обмена юзают?

 
При тестировании стратегий есть ли ограничения на количество комбинаций параметров? То есть на количество проходов тестера.
 
Переделал индикатор VSI. Получился недотепаный. Может кто подскажет где ошибка?
Файлы:
vsi_twin.mq4  4 kb
 
nikost писал(а) >>
Переделал индикатор VSI. Получился недотепаный. Может кто подскажет где ошибка?
Файлы: