0
По первому скрину создалось стойкое ощущение, что работал-работал советник на паре USDCAD, потом вы изменили входные параметры у работающего советника (uninit reason 5) — вот он и запутался. А у второго скрина проблемы с интернетом.
avatar

Oxy

  • 30 апреля 2015, 12:23
0
этот советник я программировала для работы на каждой паре отдельно
avatar

Oxy

  • 30 апреля 2015, 12:23
+1
Ордера закрываются не скопом, а по очереди.
Тик, если условия совпадают — закрылся первый ордер.
Новый тик, если условия совпадают — закрылся второй тик…

Запрограммировано, что один ордер перекрывает другой. Не запрограммировано, что сумма ордеров перекрывает один.
Сейчас запрограммировано.
Вы указали 3 ордера и 2 бакса прибыли.
Первый ордер -10$
Второй ордер -12$
Третий ордер -14$
Если есть ордер, у которого прибыли больше или равно 12 баксов, он перекроет первый ордер.
Далее если есть ордер, у которого прибыли больше или равно 14 баксов, он перекроет второй ордер.
Далее, если есть ордер, у которого прибыли больше или равно 16 баксов, он перекроет третий ордер.
Мне казалось словосочетание «по каждому» и так все разъяснило. В крайнем случае, думала, вы проверите, протестируете на демо.

советник работает только ордерами на той паре на какой он установлен?
Почитайте внимательно: opentraders.ru/downloads/699/ Я же там специально жирным отметила.
avatar

Oxy

  • 30 апреля 2015, 00:30
0
если будут баги — пишите, подправим
avatar

Oxy

  • 29 апреля 2015, 20:29
0
1) изменила
2) добавлено
3) — не поняла
4) сделала
5) сделала
6) а что вам сейчас мешало выставлять, к примеру 5.02? Может вы не знаете, что не запятую надо ставить, а точку *think* 
7) сделала

советник: opentraders.ru/downloads/701/
avatar

Oxy

  • 29 апреля 2015, 20:24
0
Еще один комментарий, до того, как я вам напишу советник — и я откажусь от задания. Просьбу вы мою не выполняете.
avatar

Oxy

  • 29 апреля 2015, 16:54
0
Плохо инвестору, если он на пике влил свои средства.
avatar

Oxy

  • 29 апреля 2015, 16:52
0
Сделаю вам советник по вашему т.з.
Только просьба, дождитесь его и новых комментарий, пока не сделаю, не пишите. (не путайте меня)
avatar

Oxy

  • 29 апреля 2015, 16:16
0
если я тут оч.многого нажелал...
не то, чтобы вы много нажелали… вы книжки писать не пробовали?
Тут нет четкого задания, тут поэма целая.
Плюс вы запутались в параметрах TakeProfit и Profit, раз такое пишите: «параметры TakeProfit и Profit сделать независимыми и настраеваемыми» — они и так независимы.

«привязав эту функцию к штатному индикатору МА» — и как? принцип?

Хотелось бы увидеть тех задание — кратко, четко, по существу, по пунктам, без воды. Тогда запрограммирую.
avatar

Oxy

  • 29 апреля 2015, 15:41
0
Прогнала индикатор SchaffTrendCycle в тестере. Перерисовывает, сильно дергается.
Вот индикатор, который рисует стрелки на основе индикатора SchaffTrendCycle и показывает алерты:
//+------------------------------------------------------------------+
//|                                       Ind_bySchaffTrendCycle.mq4 |
//|                                                              Oxy |
//|                                   http://oxy.opentraders.ru/bio/ |
//+------------------------------------------------------------------+
#property copyright "Oxy"
#property link      "http://oxy.opentraders.ru/bio/"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
//---- plot Line
#property indicator_label1  "ARROW_UP"
#property indicator_color1  clrGreen

#property indicator_label2  "ARROW_DN"
#property indicator_color2  clrRed
//------- Внешние параметры -----------------------------------------+
extern string name1         = "__________SchaffTrendCycle__________"; // Параметры SchaffTrendCycle
extern int    MAShort       = 23;                                     // MAShort - SchaffTrendCycle
extern int    MALong        = 50;                                     // MALong - SchaffTrendCycle
extern int    Cycle         = 10;                                     // Cycle - SchaffTrendCycle
extern string name2         = "________параметры_индикатора________"; // Параметры индикатора
extern bool   showAlert     = true;                                   // Показывать алерт
extern int    arr_thickness = 1;                                      // Размер стрелок
extern int    otstup        = 50;                                     // Отступ для стрелки в пунктах
extern int    level1        = 25;                                     // level1 у SchaffTrendCycle
extern int    level2        = 75;                                     // level2 у SchaffTrendCycle
//------- Глобальные переменные -------------------------------------+
//--- indicator buffers
double arrow_Buffer_UP[], arrow_Buffer_DN[];
string nameInd = "SchaffTrendCycle";
string Symb    = Symbol();
datetime alertTime = -1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   if(arr_thickness<1) arr_thickness=1;
   
   SetIndexBuffer(0, arrow_Buffer_UP);
   SetIndexStyle (0, DRAW_ARROW, STYLE_SOLID, arr_thickness);
   SetIndexArrow (0, 233);
   
   SetIndexBuffer(1, arrow_Buffer_DN);
   SetIndexStyle (1, DRAW_ARROW, STYLE_SOLID, arr_thickness);
   SetIndexArrow (1, 234);
   
   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[])
  {   
   if(prev_calculated==0) {
     int _total = rates_total-(MALong + Cycle * 2)-2;
     for(int i=_total; i>0; i--) {
       draw_arrows (i);
     }
   }
   if(prev_calculated>0 && prev_calculated<rates_total) {
     RefreshArrows(0);
   }
   if (showAlert && alertTime!=Time[1]) {
     double _ind_0 = iCustom (Symb, 0, nameInd, MAShort, MALong, Cycle, 0, 0);
     double _ind_1 = iCustom (Symb, 0, nameInd, MAShort, MALong, Cycle, 0, 1);
     bool _alert = false;
     if (_ind_1<level1 && _ind_0>=level1) {
       alertTime=Time[1];
       Alert(Symb, ": индикатор SchaffTrendCycle level = ", level1);
       _alert = true;
     }
     if (_ind_1>level2 && _ind_0<=level2) {
       alertTime=Time[1];
       Alert(Symb, ": индикатор SchaffTrendCycle level = ", level2);
       _alert = true;
     }
     if(_alert) RefreshArrows(0);
   }
   return(rates_total);
  }
//+------------------------------------------------------------------+
void RefreshArrows (int j=0) {
  for(int i=5; i>=j; i--) {
    draw_arrows (i);
  }
}
//+------------------------------------------------------------------+
void draw_arrows (int i) {
  arrow_Buffer_UP [i] = EMPTY_VALUE;
  arrow_Buffer_DN [i] = EMPTY_VALUE;
  
  double _ind_0 = iCustom (Symb, 0, nameInd, MAShort, MALong, Cycle, 0, i);
  double _ind_1 = iCustom (Symb, 0, nameInd, MAShort, MALong, Cycle, 0, i+1);
  if (_ind_1<level1 && _ind_0>=level1) {
     arrow_Buffer_UP[i] = Low[i]-otstup*Point;  
  }
  if (_ind_1>level2 && _ind_0<=level2) {
    arrow_Buffer_DN[i] = High[i]+otstup*Point;
  }
}
//+------------------------------------------------------------------+

В MetaEditor создаете новый индикатор с названием Ind_bySchaffTrendCycle (или любым), в появившемся окне для кода заменяете все, что там есть, на код из этого комментария. И нажимаете кнопку «Компилировать».
На график кидаете этот индикатор с входными параметрами, как у индикатора SchaffTrendCycle.
avatar

Oxy

  • 29 апреля 2015, 15:25
+1
Протестировала на демо, интересный советник получился:
opentraders.ru/downloads/699/
avatar

Oxy

  • 29 апреля 2015, 14:12
0
Ты вначале протестируй. А то окажется, что ошибок полно :D 
avatar

Oxy

  • 28 апреля 2015, 22:44
0
У меня в тестере переносит.
Здесь подробно я описывала, как я реализую безубыток и трал в коде:
zakaz.opentraders.ru/24181.html#comment102648
avatar

Oxy

  • 28 апреля 2015, 22:12