Jump to content
makmel

Просьба доделать эксперт

Recommended Posts

Registr

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

if (Hour()>LatestOpenHour || Day()==OpenDay) return;
//      {
if(Day()==CheckDay_8 && (channel_8<(avrange_8/ChannelK)*Point)) 
{ Opening_8(); }
if(OrdersTotal()==TradesPerDayAllowed) return;
if(Day()==CheckDay_12 &&(channel_12<(avrange_12/ChannelK)*Point)) 
{ Opening_12(); }
//      }


Миражи - это наша жизнь...

Share this post


Link to post
Share on other sites
3172552
А нафига массив daj_12, например, собственно массив? Я заменил на обыкновенную переменную double, получается то же самое...

Согласен, просто я сначала по другому считал, поэтому остался массив

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

Да, в принципе интересно попробовать считать диапазон по клоузам, чем меньше фрейм, тем меньше будет разница с диапазоном, поссчитаным по хай-лоу.

... если они нигде не используются?...

Как нигде? Close_by_Stops()!!! Попытаюсь объяснить. Советник писАлся изначально под мт3. Там иначе на часах стопы не поставишь, если хочешь адекватного тестирования. Смысл в том, чтоб любую операцию выполнять ТОЛЬКО по началу свечи. Если цена ушла за стоп, а свеча ещё не закончилась- ждём конца свечи, может цена ещё вернётся в нашу сторону и закроется выше стопа(для покупки). Я придаю бОльшее значения цене закрытия часа, чем колебаниям внутри. Всякие там биржи закрываются-открываются не в 6-34(например), а либо в 6, либо в 7. Кроме того, ГОРАЗДО быстрее тестировать и оптимизировать. Хотя, можно просто поставить стопы и тейки в OrderSend(). Я пробовал- результаты хуже, хотя для реала этот вариант более подходящий(имхо).

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

поправил...

Согласен, но я бы сделал так

if (Hour()==CheckHour && Day()!=CheckDay)
    {Levels_Defining(); CheckDay=Day();}

Думаю, это дело вкуса...

Насчёт ММ- согласен, так справедливее. Насчёт скобок- Вы правы, мне просто так нагляднее.

Share this post


Link to post
Share on other sites
Registr

   if((Hour()>=CloseHour) && (Day()!=OpenDay))
   { Close_by_Closetime(); }

... как я понял, позиция закрывается в 22:00 на следующий день, если в этот день не было открыто новой позиции. А откуда такое правило? А если позиции будут открываться каждый день? Что-то какое-то странное ограничение по времени... :?

... и это то же...

if (Hour()>LatestOpenHour || Day()==OpenDay) return;

... получается, что в один день две позиции не открываются. Это как-то оправдано?


Миражи - это наша жизнь...

Share this post


Link to post
Share on other sites
3172552

22 часа= это latestopen hour- время, после которого мы уже не открываемся. А закрываемся мы на следующий день после открытия в CloseHour - 9утра. А по каким сигналам Вы предлагаете открываться второй раз в день? В советнике Scalp_8_12 предусмотрено открытие 2 раза в день если установить TradesPerDayAllowed=2. Тогда мы отрабатываем оба сигнала- от 8-ми часового и от 12-ти часового каналов.

Share this post


Link to post
Share on other sites
3172552
/*... вычисляем максимальную и минимальную цену временного диапазона с 0 часов

до eiCheckHour часов и eiCheckMinute минут...*/

Это немного хуже работает, я пробовал, хотя не критично. Дело в том, что для 8-ми часового диапазона я мерял канал за прошедшие 9! часов, иногда хороший результат давали 6 часов. А для 12-ти часового наилучший результат(с хорошим отрывом) дают 4 часа, то есть 12-8. В любом случае, желательно иметь переменную Hours2Check описаную как extern.

Share this post


Link to post
Share on other sites
3172552
Конечно, процессору больше нечем заняться...

В принципе, изначально у меня был вариант, который тупо работал 1 раз на свечу, решалось это просто-

if (MyBars!=Bars)
  {
  MyBars=Bars;
  ................
  }

Но если мы используем InsuranceStop, а его необходимо использовать, то такой вариант раьотать не будет.

Share this post


Link to post
Share on other sites
3172552

Блин, 2 раза отправил(ось)

Share this post


Link to post
Share on other sites
Registr

Млин, извиняюсь, вчера, под конец рабочего... тьфу, ночи... :D совсем крыша съехала, перепутал CloseHour с LatestOpenHour... :D

А насчёт когда закрываться, решил задействовать CloseMode, и попробовать закрываться так же и в тот же день, скажем в 23:00. Дело в том, что порою по ночам, когда вроде не ожидается никаких новостей по евре, творится такое... :shock: Да и с пятницы на понедельник, не хочется позицию бросать... Бробую...

В принципе, изначально у меня был вариант

... лично я делаю так...

bool   lbNewBar = false;
if (giCurrBar!=iBars(Symbol(),0))
{//2   
   giCountBars++;
   lbNewBar=True;
   giCurrBar=iBars(Symbol(),0);
}//2

... в результате lbNewBar принимает значение true один раз, в начале каждого бара...

А по каким сигналам Вы предлагаете открываться второй раз в день?
... я имел ввиду, что если позиция открылась, скажем, по сигналам Opening_8() и OpenDay=Day() стало, то по сигналам Opening_12() уже позиция не откроется, по тому что...

if (Hour()>LatestOpenHour || Day()==OpenDay) return;

... это оправдано?


Миражи - это наша жизнь...

Share this post


Link to post
Share on other sites
3172552
... в результате lbNewBar принимает значение true один раз, в начале каждого бара...

Если не сложно, объясните пожалуйста, чем хуже

if (MyBars!=Bars)

{

MyBars=Bars;

................

}

... это оправдано?

Есть 2 варианта, смотрите переменную TradesPerDayAllowed, если =1- только 1 операция в день, если=2, то открываемся по обоим сигналам.

и попробовать закрываться так же и в тот же день, скажем в 23:00

Попробуйте, я пробовал полгода назад, результаты хуже и логика теряется. Если закрываться в 23-00, то тогда диапазон для рассчёта offset, loss, profit надо измерять не с 9-ти до 9-ти, а с9-ти до 23-х. Пробовал привязать offset(это самая важная переменная) к диапазону, который мы за Hours2Check меряем- хуже.

Share this post


Link to post
Share on other sites
трендмен

Может доверить это дело профессионалам MQ4, заплатить программерам 20 бакинских, зато качественно и 100% по системе!

 

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

 

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


{Супермаркет для трейдера} Подробнее...

Share this post


Link to post
Share on other sites
3172552

Ничего не глючит, всё верно работает на тесте, он у меня ещё на мт3 работал(немного другой). Поверьте, если бы с кодом было что-то не так, то тов. GOODMAN уже давно бы раскритиковал- он не дал бы никому слить депозит из-за ошибки в советнике..

Share this post


Link to post
Share on other sites
трендмен
Ничего не глючит, всё верно работает на тесте, он у меня ещё на мт3 работал(немного другой). Поверьте, если бы с кодом было что-то не так, то тов. GOODMAN уже давно бы раскритиковал- он не дал бы никому слить депозит из-за ошибки в советнике..

 

отлично, вы меня успокоили :wink:

 

А че с версией для реала?


{Супермаркет для трейдера} Подробнее...

Share this post


Link to post
Share on other sites
3172552

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

Share this post


Link to post
Share on other sites
трендмен
Я свою версию считаю достаточно работоспособной для торговли на реале, но сам никогда на раеле не торговал.Registr создаёт свою версию, уверен- у него опыта побольше и советник получится наверняка лучше моего.

 

Какой именно? Завтра поставлю тестить...


{Супермаркет для трейдера} Подробнее...

Share this post


Link to post
Share on other sites
трендмен
Я свою версию считаю достаточно работоспособной для торговли на реале, но сам никогда на раеле не торговал.Registr создаёт свою версию, уверен- у него опыта побольше и советник получится наверняка лучше моего.

 

Какой именно? Завтра поставлю тестить...

 

уже сегодня...


{Супермаркет для трейдера} Подробнее...

Share this post


Link to post
Share on other sites
Registr

Увы, уже ничего не создаю... С сегодняшнего дня в больнице и похоже на долго... Там компутера нет... :D Вот собрал всю логику в одно место, дальше уже сами закончите... Пока, пока...

if((Hour()<eiLastOpenHour)&&(Day()!=giOpenDay))
{//6
   if((Day()==CheckDay_08)&&(gdChannel_08<(gdAvRange_08/edChannelK_08*Point)))
   {//7
      giProfit_08=MathRound(gdAvRange_08/edProfitK_08);
      giLoss_08=MathRound(gdAvRange_08/edLossK_08);
      liUncondProfit=MathRound(giProfit_08*5);
      liUncondStop=MathRound(giLoss_08*1.5);

      if((Close[1]>=gdBuyLevel_08))
      {//8
          giCountOrders++;
         liTicket=OpenPosition(OP_BUY,Symbol(),edLots,eiSlippage,liUncondStop,liUncondProfit,
         giCountOrders+" Buy-tt",siMagicNumber_08,DeepPink,ebUseSoundInOperations,esSoundOpenBuy);
         if(liTicket>0) { giOpenDay=Day(); }       
      }//8
      if((gdSellLevel_08>=Close[1]))
      {//9
         giCountOrders++;
         liTicket=OpenPosition(OP_SELL,Symbol(),edLots,eiSlippage,liUncondStop,liUncondProfit,
         giCountOrders+" Sell-tt",siMagicNumber_08,MediumBlue,ebUseSoundInOperations,esSoundOpenSell);
         if(liTicket>0) { giOpenDay=Day(); }       
      }//9    
   }//7


   if(( (Day()==CheckDay_12)&&(gdChannel_12<(gdAvRange_12/edChannelK_12*Point)) )&&
   ((CalculationOfWarrants(Symbol(),siMagicNumber_08,6,0)+CalculationOfWarrants(Symbol(),siMagicNumber_12,6,0))
   <eiTradesPerDayAllowed))
   {//11
      giProfit_12=MathRound(gdAvRange_12/edProfitK_12);
      giLoss_12=MathRound(gdAvRange_12/edLossK_12);
      liUncondProfit=MathRound(giProfit_12*5);
      liUncondStop=MathRound(giLoss_12*1.5);

      if((Close[1]>=gdBuyLevel_12))
      {//13
         giCountOrders++;
         liTicket=OpenPosition(OP_BUY,Symbol(),edLots,eiSlippage,liUncondStop,liUncondProfit,
         giCountOrders+" Buy-tt",siMagicNumber_12,Pink,ebUseSoundInOperations,esSoundOpenBuy);
         if(liTicket>0) { giOpenDay=Day();}              
      }//13
      if((gdSellLevel_12>=Close[1]))
      {//14
         giCountOrders++;
         liTicket=OpenPosition(OP_SELL,Symbol(),edLots,eiSlippage,liUncondStop,liUncondProfit,
         giCountOrders+" Sell-tt",siMagicNumber_12,DeepSkyBlue,ebUseSoundInOperations,esSoundOpenSell);
         if(liTicket>0) { giOpenDay=Day();}        
      }//14
   }//11

//    }//10

}//6


Миражи - это наша жизнь...

Share this post


Link to post
Share on other sites
igorek_y
Увы, уже ничего не создаю... С сегодняшнего дня в больнице и похоже на долго... Там компутера нет... :D Вот собрал всю логику в одно место, дальше уже сами закончите... Пока, пока...

if((Hour()<eiLastOpenHour)&&(Day()!=giOpenDay))
{//6
   if((Day()==CheckDay_08)&&(gdChannel_08<(gdAvRange_08/edChannelK_08*Point)))
   {//7
      giProfit_08=MathRound(gdAvRange_08/edProfitK_08);
      giLoss_08=MathRound(gdAvRange_08/edLossK_08);
      liUncondProfit=MathRound(giProfit_08*5);
      liUncondStop=MathRound(giLoss_08*1.5);

      if((Close[1]>=gdBuyLevel_08))
      {//8
          giCountOrders++;
         liTicket=OpenPosition(OP_BUY,Symbol(),edLots,eiSlippage,liUncondStop,liUncondProfit,
         giCountOrders+" Buy-tt",siMagicNumber_08,DeepPink,ebUseSoundInOperations,esSoundOpenBuy);
         if(liTicket>0) { giOpenDay=Day(); }       
      }//8
      if((gdSellLevel_08>=Close[1]))
      {//9
         giCountOrders++;
         liTicket=OpenPosition(OP_SELL,Symbol(),edLots,eiSlippage,liUncondStop,liUncondProfit,
         giCountOrders+" Sell-tt",siMagicNumber_08,MediumBlue,ebUseSoundInOperations,esSoundOpenSell);
         if(liTicket>0) { giOpenDay=Day(); }       
      }//9    
   }//7


   if(( (Day()==CheckDay_12)&&(gdChannel_12<(gdAvRange_12/edChannelK_12*Point)) )&&
   ((CalculationOfWarrants(Symbol(),siMagicNumber_08,6,0)+CalculationOfWarrants(Symbol(),siMagicNumber_12,6,0))
   <eiTradesPerDayAllowed))
   {//11
      giProfit_12=MathRound(gdAvRange_12/edProfitK_12);
      giLoss_12=MathRound(gdAvRange_12/edLossK_12);
      liUncondProfit=MathRound(giProfit_12*5);
      liUncondStop=MathRound(giLoss_12*1.5);

      if((Close[1]>=gdBuyLevel_12))
      {//13
         giCountOrders++;
         liTicket=OpenPosition(OP_BUY,Symbol(),edLots,eiSlippage,liUncondStop,liUncondProfit,
         giCountOrders+" Buy-tt",siMagicNumber_12,Pink,ebUseSoundInOperations,esSoundOpenBuy);
         if(liTicket>0) { giOpenDay=Day();}              
      }//13
      if((gdSellLevel_12>=Close[1]))
      {//14
         giCountOrders++;
         liTicket=OpenPosition(OP_SELL,Symbol(),edLots,eiSlippage,liUncondStop,liUncondProfit,
         giCountOrders+" Sell-tt",siMagicNumber_12,DeepSkyBlue,ebUseSoundInOperations,esSoundOpenSell);
         if(liTicket>0) { giOpenDay=Day();}        
      }//14
   }//11

//    }//10

}//6

 

выздоравливай.будем тебя ждать :wink:


Чем искушеннее игра-тем искушеннее соперник © Revolver

Share this post


Link to post
Share on other sites
3172552

Да, выздоравливайте поскорее. Жил бы я поближе, проведал бы, лэптопчик бы завёз, в больнице скучно без компа. Попробую с Вашим вариантом разобраться, но не уверен, что получится. Вот мой вариант, немного усовершенствованный, и ещё 1 советничек вдогонку. Пробуйте разные параметры, для 2005-6 годов days2check и atrperiod(во 2-м советнике) надо увеличивать.

____________170.rar

Share this post


Link to post
Share on other sites
трендмен
Да, выздоравливайте поскорее. Жил бы я поближе, проведал бы, лэптопчик бы завёз, в больнице скучно без компа. Попробую с Вашим вариантом разобраться, но не уверен, что получится. Вот мой вариант, немного усовершенствованный, и ещё 1 советничек вдогонку. Пробуйте разные параметры, для 2005-6 годов days2check и atrperiod(во 2-м советнике) надо увеличивать.

 

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


{Супермаркет для трейдера} Подробнее...

Share this post


Link to post
Share on other sites
makmel
Да, выздоравливайте поскорее. Жил бы я поближе, проведал бы, лэптопчик бы завёз, в больнице скучно без компа. Попробую с Вашим вариантом разобраться, но не уверен, что получится. Вот мой вариант, немного усовершенствованный, и ещё 1 советничек вдогонку. Пробуйте разные параметры, для 2005-6 годов days2check и atrperiod(во 2-м советнике) надо увеличивать.

Привет.

3172552 скажи на данный момент есть эксперт который в онлайн работает или будем с нетерпением ждать выздаровления Registr.

Да вот ещё что скачал нывые версии протестировал и возник вопрос почему тест работает только на часовках?

Share this post


Link to post
Share on other sites
azfaraon

Привет.

3172552 скажи на данный момент есть эксперт который в онлайн работает или будем с нетерпением ждать выздаровления Registr.

Да вот ещё что скачал нывые версии протестировал и возник вопрос почему тест работает только на часовках?

 

 

void start()

{

if (Period()!=60) return;

if(OrdersTotal()>0)

Измените период

Share this post


Link to post
Share on other sites
3172552
Привет.

3172552 скажи на данный момент есть эксперт который в онлайн работает или будем с нетерпением ждать выздаровления Registr.

Да вот ещё что скачал нывые версии протестировал и возник вопрос почему тест работает только на часовках?

 

Я думаю мои версии должны работать онлайн. Ждать выздоровления будем в любом случае

Share this post


Link to post
Share on other sites
трендмен

Кто-нибудь может переделать ММ, чтоб лоты открывались минимум депозит/5, т.е. 1к5. Так прибыли больше будет!

 

Поставлю на реал!


{Супермаркет для трейдера} Подробнее...

Share this post


Link to post
Share on other sites
3172552

Извините, не понял. То есть Вы хотите открываться на 20 процентов от депо? Типа если у Вас 500 долларов, то 0,1лота, если 1000- то 0,2?

Share this post


Link to post
Share on other sites
makmel
Извините, не понял. То есть Вы хотите открываться на 20 процентов от депо? Типа если у Вас 500 долларов, то 0,1лота, если 1000- то 0,2?

Привет.

Да интересно былобы посмотреть на результат.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×