Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 787

 
evillive:
в цикле счётчик инкрементировать на каждом своём отложеннике и запоминать тикет, если счётчик после цикла = 1 то удалить ордер с этим тикетом.
А есть возможность обойтись без тикета? хотелось бы при обновлении советника на терминале быть уверенным в том, что он подхватит свои ордера, т.к . торговля этим советником уже ведётся.
 
woin2110:
А есть возможность обойтись без тикета? хотелось бы при обновлении советника на терминале быть уверенным в том, что он подхватит свои ордера, т.к . торговля этим советником уже ведётся.
ну так тикет-то будет именно своего ордера
 
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Magenta
#property indicator_color2 Aqua
//--- input parameters
extern int       Period_=15;
extern double    Rmax   =0.005;
//--- buffers
double Max[];
double RazmahMax[];
double BufferLow[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorBuffers(3);
   SetIndexBuffer(2,BufferLow);
   SetIndexBuffer(1,Max);
   SetIndexBuffer(0,RazmahMax);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,226);
   SetIndexEmptyValue(0,0.0);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),limit, i,m;
    double maximum,spuskMax;
   if(counted_bars>0)
      counted_bars--;  
   limit=Bars-counted_bars;
   for(i=0;i<limit;i++)
   {
      maximum=High[iHighest(NULL,0,MODE_HIGH,Period_,i)];
      Max[i]=maximum;//найден максимум
   }
   for(i=0;i<limit;i++)
   {
   spuskMax=Max[i]-Low[i];//разница между максимумом и текущим минимумом
   BufferLow[i]=spuskMax;
   }
   for(i=0;i<limit;i++)
   {
   m=iHighest(NULL,0,MODE_HIGH,Period_,i);//индекс на котором находится максимум
   if (BufferLow[i] > Rmax){RazmahMax[i+m]=High[i+m];}//поставить стрелку на баре где находится максимум
   if (BufferLow[i] < Rmax){RazmahMax[i+m]=0.0;}
   }
   return(0);
  }

Вопрос не снят. Итак, сначала.

Найден максимум, далее по нему строится линия. Проверяется расстояние между этой максимальной линией и текущим минимумом. Если она превышает «Rmax», то ставится стрелка на баре, где найден максимум. Стрелка то ставится, но не там. Для наглядности добавил буфер «BufferLow[i]», который показывает разницу и его данные видны в окне обозревателя.

 

Всем добрый вечер!

Изучаю тему создания и инициализации массива.

В принципе, все понимаю.

Даже сумел инициализировать массив состоящий из значений цены.

Я инициализировал его так....

-скопировал в таблицу ЕКСЕЛЬ

-расставил запятые после каждого значения

-а затем перенес во включаемый файл.

ВОПРОС

Как можно инициализировать массив более быстро и при помощи языка MQ4?

Спасибо. 

 

173.252
173.370
173.072
173.080
172.782
172.870
172.572
172.720
173.722
172.250
171.952
171.850
171.552
171.630
171.332
170.730
171.732
172.192
172.490
172.370
172.072
 
AlexeyVik:

StringConcatenate поможет.

Спасибо.
 

Уважаемые коллеги!

Есть статистическая торговая стратегия. Есть база данных по сигналам ТС почти за три года. Сведена она в таблицу в экселе из пяти колонок цифр и одной колонки букв, в которой отражена сделка по сигналу - фактическая покупка или продажа ("В" или "Н"). Проблема с фильтрацией этих сигналов. Невозможно физически с помощью обыкновенного фильтра правильно определить направление. Вернее можно, но для этого потребуется очень много времени (подготавливая материал для данного поста я потратил больше часа, в условиях рынка при принятой стратегии это катастрофически много). А если ограничится и брать не все возможные варианты фильтрации - сплошь и рядом ошибки фильтрации. В результате прибыль на бумаге а де факто убытки.

Ниже я приведу табличку - базу для автоматической фильтрации (как я вижу). Эта табличка должна быть привязана к базе данных статистики. Мне остается только в первую строку таблицы вписать нужные цифры и прога мне выдает в итоге вероятность покупки и продажи, ну а я уже по этим данным принимаю решение - торговать или нет (если вероятность меня не устроит).

фильтр

Если у кого есть желание и возможность помочь - буду признателен. Возможна оплата в разумных пределах. Можно обсудить детали в личке.

 
sivanik:

Уважаемые коллеги!

Есть статистическая торговая стратегия. Есть база данных по сигналам ТС почти за три года. Сведена она в таблицу в экселе из пяти колонок цифр и одной колонки букв, в которой отражена сделка по сигналу - фактическая покупка или продажа ("В" или "Н"). Проблема с фильтрацией этих сигналов. Невозможно физически с помощью обыкновенного фильтра правильно определить направление. Вернее можно, но для этого потребуется очень много времени (подготавливая материал для данного поста я потратил больше часа, в условиях рынка при принятой стратегии это катастрофически много). А если ограничится и брать не все возможные варианты фильтрации - сплошь и рядом ошибки фильтрации. В результате прибыль на бумаге а де факто убытки.

Ниже я приведу табличку - базу для автоматической фильтрации (как я вижу). Эта табличка должна быть привязана к базе данных статистики. Мне остается только в первую строку таблицы вписать нужные цифры и прога мне выдает в итоге вероятность покупки и продажи, ну а я уже по этим данным принимаю решение - торговать или нет (если вероятность меня не устроит).


Если у кого есть желание и возможность помочь - буду признателен. Возможна оплата в разумных пределах. Можно обсудить детали в личке.

А скажи пожалуйста, каков доход от такой сложной конструкции? Вообще есть-ли смысл этим заниматься? Ведь если в итоге выход 100% но только 3 раза в год, то с вероятностью 60% 3 раза в день даст больший доход чем тот который 100%... Конечно приведённый пример утрирован, но не далёк от реальности.

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

Ну, а, если то есть Фриланс или личка любого программиста.

 
AlexeyVik:

А скажи пожалуйста, каков доход от такой сложной конструкции? Вообще есть-ли смысл этим заниматься? Ведь если в итоге выход 100% но только 3 раза в год, то с вероятностью 60% 3 раза в день даст больший доход чем тот который 100%... Конечно приведённый пример утрирован, но не далёк от реальности.

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

Ну, а, если то есть Фриланс или личка любого программиста.

Спасибо за ссылку. Я там уже раз заказывал индикатор, просто забыл где я это делал!

Что касаемо ТС. Статистика примерно следующая. В среднем около 40 сделок в месяц. В пунктах примерно 2500-3000п. (пунктов а не пипсов! Или 25-30 фигур) При правильной фильтрации процент убыточных сделок не более 10%. Чужими наработками (советники не для моей ТС) никогда не пользовался и не буду! Спасибо за предложение!

[Deleted]  

доброго  времени суток!!! друзья!товарищи! с уважением к вам профи!!!

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

То есть когда цена подошла к заданной точке туда переместился StopLoss!!!

 мой пример ни как не подходит.

#define MagicNumber  123

////extern double TakeProfit   = 50; //Тейкпрофит ордера
extern double StopLoss     = 50; //Стоплосс ордера  
extern int    Delta        = 100;  //Расстояние от цены для установки ордера
extern int    Expiration   = 100;    //Время истечения ордера
extern double Lot          = 0.01;    //Объём позиции
extern int    TrailingLevel = 200;   //уровень
extern int    TrailingStep  = 200;


int            last_bar       = 0;
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start(){

for (int i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

           if (OrderType() == OP_BUY) { 
 if ((OrderStopLoss() < (Bid - TrailingLevel * Point - TrailingStep * Point)) || (OrderStopLoss() == 0)) { // 2
          bool res=OrderModify(OrderTicket(),OrderOpenPrice(),(Bid - TrailingLevel * Point),OrderTakeProfit(),0,Green);   
}
}
}
  
 datetime expiration = TimeCurrent()+3600*Expiration; /// время окончания  
   double BUYLIMITPrice=Ask-Delta*Point; /// это пункты BUYLIMIT

 if (last_bar == Bars) return(0) ;
  last_bar = Bars;
   if (OrdersTotal() == 0)
     {
int ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lot, BUYLIMITPrice,0, BUYLIMITPrice-StopLoss*Point,0 ,"",MagicNumber,expiration,clrNONE);/// это BUYLIMIT
}
 
//----
  return(0) ; 
 } 
  
  
//-- ------------------------------------------------------------------


 
Rita:

Добрый день.

Пож. подскажите. Открываю позицию:

Как можно задать, чтобы в комментарии позиции отображалось значение  Magic после слова номер? 

Т.е. в данном случае:  Номер 20781

 

Можно и так сделать:

   int mag=111222333;
   string str="Сложение строки и числа ";
   str=str+mag;
   Alert(str);

 При сложении переменных разных типов результат преобразуется в тип переменной с наибольшим приоритетом. У string выше, чем у int