0
Смотрите, входные параметры:

<code>переменная NameOrders - стоповые или лимитные ордера - stop_orders или limit_orders
переменная NameLot    - Лот постоянный, с увеличением на начальный, мартингейл - constant_Lot или increase_Lot или martingale_Lot
переменная LotBegin   - сам лот
переменная NameSL_TP  - SL и TP фиксированные или ближайший уровень - constant_SL_TP или level_SL_TP
переменная TakeProfit
переменная StopLoss</code>


ТП и СЛ равные 0 — это соответственно ТП и СЛ на противоположных уровнях

При ТП и СЛ равных нулю и при значении NameSL_TP, равным constant_SL_TP — ТП и СЛ не ставятся.
При ТП и СЛ равных нулю и при значении NameSL_TP, равным level_SL_TP — СЛ и ТП переносятся на ближайший уровень.
Но если уровень, к примеру крайний, то ближайшего у СЛ и ТП может не оказаться, и тогда не выставляется. Чтобы избежать такой ситуации, когда не окажется или СЛ или ТП, то лучше значения СЛ и ТП указывать. Тогда если нет ближайшего уровня рядом (уровень крайний), то СЛ или ТП примет фиксированное значение.
Т.е. рекомендуемо — указать СЛ и ТП и значение NameSL_TP сделать равным level_SL_TP — если хотите СЛ и ТП увидеть на близлежащих уровнях и не остаться с пустым значением или СЛ или ТП.

Тестируйте на демо (не в тестере) — и вам станет все понятно.
avatar

Oxy

  • 28 февраля 2015, 13:48
0
27 февраля 2015, 09:36 я выложил алгоритм работы сова
Можете ссылку поместить в комментарий? А то в этом топике её нет, а мне уже и не найти её.

И мне было бы проще, если бы вы конкретно и лаконично описали, что добавить/изменить в советнике.
Слова: «поиграть», «можно добавить (а можно и не добавить)» — для меня ничего не говорят.
Вы что именно хотите изменить в этом советнике? Пишите по пунктам, будем думать.
Рассуждения, почему он не приносит прибыль и как сделать, чтобы он приносил прибыль — я пропускаю, когда нет конкретики.
avatar

Oxy

  • 28 февраля 2015, 13:37
0
Вот этот индикатор посмотрю, интересно. В выходные рынки не работают, нет движения, поэтому посмотрю в понедельник.
Только попросите Bishop днем, чтобы он перенес топик в стол заказов.
Его же можно попросить лишний топик этот shiva.opentraders.ru/23380.html удалить
avatar

Oxy

  • 28 февраля 2015, 03:13
0
Ощущение двоякое от кода этого индикатора.
Видно, что файл декомпилированный, но так же видно, что его кто-то правил.
Плюс он ссылается при расчетах на индикаторы, которых у меня нет:
avatar

Oxy

  • 28 февраля 2015, 02:59
0
Этот файл — не совсем исходник. Это декомпилированный файл.
Это сразу понятно по коду, а особенно по названию переменных:

При декомпиляции файла переменные утрачивают свои первоначальные названия, плюс сам код местами преобразуется, что вызывает порой ошибки.
Я не берусь за декомпилированные файлы.
avatar

Oxy

  • 28 февраля 2015, 02:51
0
И последняя просьба.
Неуверена *think* 
Перезалила: opentraders.ru/downloads/612/
Если ордер закрылся по take profit, открывается позиция в том же направлении.
avatar

Oxy

  • 28 февраля 2015, 00:35
0
В индикаторе mtf-ozy-histo замените весь код вот на этот:
//+------------------------------------------------------------------+
//|                                                      mtf-ozy.mq4 |
//|                       Copyright 2014, GoldenMoney Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, GoldenMoney Software Corp."
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 MediumSeaGreen
#property indicator_color2 IndianRed

#property indicator_maximum 1
#property indicator_minimum 0


extern int TimeFrame=0;
extern string IndicatorName="i_ozymandias_lite alert";

double ExtMapBuffer1[];
double ExtMapBuffer2[];
string TimeFrameStr;
int    ratesTotal=-1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,ExtMapBuffer1);

   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexBuffer(1,ExtMapBuffer2);

   switch(TimeFrame)
     {
      case 0 : TimeFrameStr="PERIOD_CURRENT"; break;
      case 1 : TimeFrameStr="PERIOD_M1"; break;
      case 5 : TimeFrameStr="PERIOD_M5"; break;
      case 15 : TimeFrameStr="PERIOD_M15"; break;
      case 30 : TimeFrameStr="PERIOD_M30"; break;
      case 60 : TimeFrameStr="PERIOD_H1"; break;
      case 240 : TimeFrameStr="PERIOD_H4"; break;
      case 1440 : TimeFrameStr="PERIOD_D1"; break;
      case 10080 : TimeFrameStr="PERIOD_W1"; break;
      case 43200 : TimeFrameStr="PERIOD_MN1"; break;
     }
   IndicatorShortName("MTF_Ozymandias ("+TimeFrameStr+")");

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {

   datetime TimeArray[];
   int    i,limit,y=0,counted_bars=prev_calculated;
   ArrayCopySeries(TimeArray,MODE_TIME,NULL,TimeFrame);

   limit=Bars-prev_calculated;
   
   if(ratesTotal+1==rates_total) {
     ExtMapBuffer1[1]=iCustom(NULL,TimeFrame,IndicatorName,0,1);
     ExtMapBuffer2[1]=iCustom(NULL,TimeFrame,IndicatorName,1,1);
   }
   for(i=0,y=0;i<limit;i++)
     {
      if(Time[i]<TimeArray[y]) y++;

      ExtMapBuffer1[i]=iCustom(NULL,TimeFrame,IndicatorName,0,y);
      ExtMapBuffer2[i]=iCustom(NULL,TimeFrame,IndicatorName,1,y);
     }
   ratesTotal=rates_total;
   return(rates_total);
  }
//+------------------------------------------------------------------+

И индикатор (гистограмма) будет обновляться с новой свечкой.
avatar

Oxy

  • 28 февраля 2015, 00:27
0
Наконец-то добралась и до вашего советника.
Про сам советник я вроде все поняла.
Но вот про индикатор *think* 
В индикаторе Price Channel я не нашла строк:
double up=iHigh(Symbol(),PERIOD_H1,iHighest(NULL,0,MODE_HIGH,CountHour,1));
double dn=iLow(Symbol(),PERIOD_H1,iLowest(NULL,0,MODE_LOW,CountHour,1));
Вот код самого индикатора, который я скачала по ссылке:
//+------------------------------------------------------------------+
//|                                                Price Channel.mq4 |
//|                                                                  |
//|                                       http://forex.kbpauk.ru/    |
//+------------------------------------------------------------------+
 
#property link      "http://forex.kbpauk.ru/"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 DodgerBlue
#property indicator_color2 DodgerBlue
#property indicator_color3 DodgerBlue
//---- input parameters
extern int ChannelPeriod=14;
//---- buffers
double UpBuffer[];
double DnBuffer[];
double MdBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_LINE,2);
   SetIndexBuffer(0,UpBuffer);
   SetIndexBuffer(1,DnBuffer);
   SetIndexBuffer(2,MdBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="Price Channel("+ChannelPeriod+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,"Up Channel");
   SetIndexLabel(1,"Down Channel");
   SetIndexLabel(2,"Middle Channel");
//----
   SetIndexDrawBegin(0,ChannelPeriod);
   SetIndexDrawBegin(1,ChannelPeriod);
   SetIndexDrawBegin(2,ChannelPeriod);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Price Channel                                                         |
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars=IndicatorCounted();
   int    k;
   double high,low,price;
//----
   if(Bars<=ChannelPeriod) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=ChannelPeriod;i++) UpBuffer[Bars-i]=0.0;
//----
   i=Bars-ChannelPeriod-1;
   if(counted_bars>=ChannelPeriod) i=Bars-counted_bars-1;
   while(i>=0)
     {
       high=High[i]; low=Low[i]; k=i-1+ChannelPeriod;
      while(k>=i)
        {
         price=High[k];
         if(high<price) high=price;
         price=Low[k];
         if(low>price)  low=price;
         k--;
        } 
     UpBuffer[i]=high;
     DnBuffer[i]=low;
     MdBuffer[i]=(high+low)/2;
      i--;
     }
   return(0);
  }
//+------------------------------------------------------------------+

Может вы код индикатора сюда разместите? Как я только что сделала.
avatar

Oxy

  • 27 февраля 2015, 23:45
0
В основе этого индикатора лежат скользящие средние. Я логически не понимаю, как этот индикатор переделать в гистограмму и прикрутить еще к ней линию. Поняла, что вы хотите что-то типо такого:

Может вам сразу индикатор гистограммой искать?
к примеру
avatar

Oxy

  • 27 февраля 2015, 23:21
0
Посмотрела код, не возьмусь делать
avatar

Oxy

  • 27 февраля 2015, 22:52
0
Это вообще гиблое дело — открытие ордеров при смене цвета. Проверяла. Он столько раз меняется, а потом возвращается! Просто мы этого почти не замечаем. А ложных срабатываний куча.
avatar

Oxy

  • 27 февраля 2015, 22:50
0
Вы, наверное, выбрали увеличение лота — там два варианта увеличения лота. Не по порядку линий идет увеличение лота, а сначала на дневных линиях лот увеличивается, потом на недельных, потом на месячных. По порядку мне не сделать с этим индюком.
avatar

Oxy

  • 27 февраля 2015, 22:31
0
Не поняла, что вы просите.
Поместила его на график (МТ4):

Что с этим индикатором надо сделать?
avatar

Oxy

  • 27 февраля 2015, 22:24
0
Если будет повторное срабатывание алерта, то прикрепите, пожалуйста, скрин вкладки «эксперты»
avatar

Oxy

  • 27 февраля 2015, 22:19
+1
Здесь два индикатора:
opentraders.ru/downloads/582/
Вам нужен Auto Fibo Retracement-V2_s_a_2.
Добавлена возможно отключать звук или окно оповещения, добавлена возможность выбирать линии, по которым идет оповещение.
avatar

Oxy

  • 27 февраля 2015, 22:17
0
Получилось изменить tp.
Take profit у открытых ордеров переносится на tp последнего сработавшего ордера (buy и sell отдельно).
opentraders.ru/downloads/607/
Если надо что-то изменить, пишите.
avatar

Oxy

  • 27 февраля 2015, 21:20
+1
Спасибо за помощь! Я смогла договориться с МТ4! Получилось. Сейчас допрограммирую советник.
avatar

Oxy

  • 27 февраля 2015, 20:36
0
А по поводу того, что советник пропал с графика.
Может вы отжали кнопку

Судя по сообщению, на это похоже:
avatar

Oxy

  • 27 февраля 2015, 20:23
0
Спасибо вам за терпение! Подправила код.
Перезалила файл:
opentraders.ru/downloads/587/
Давайте дальше тестировать.
Продолжим: один советник на одной паре с разными входными переменными. Т.е. запустили советник, поработал, не выдал ошибки, выключаете, удаляете все позиции. Запускаете снова советник. Если появилась ошибка скрините и помещаете сюда.
avatar

Oxy

  • 27 февраля 2015, 19:45