Простой вопрос!

xrust

Почетный гражданин
Исправил:
Код:
//+------------------------------------------------------------------+
//|                      Factal_Level_Xrust.mq4 |
//|                 Copyright © 2008, XrustSolution. |
//|                      [url]http://xrust.ucoz.net[/url] |
//+------------------------------------------------------------------+
#property copyright "#Copyright © 2008, XrustSolution.#"
#property link   "#xrust.ucoz.net#"

#property indicator_chart_window
extern int  Distanse=0;//
extern string FrApNam="Ap";
extern string FrDnNam="Dn";
extern color ClAp=Blue;
extern color ClDn=Red;
//-------------------------------------------------------------------+
double FrPrise;
double FrApPrise=0,FrDnPrise=0;
//+------------------------------------------------------------------+
int deinit()
 {
//----
ObjectsDeleteAll();  
Comment(" ");
//----
  return(0);
 }
//+------------------------------------------------------------------+
//| Custom indicator iteration function               |
//+------------------------------------------------------------------+
int start()
 {
  int  counted_bars=IndicatorCounted();
  int limit;
  double tmp;
  int i, j,k;
  if(counted_bars<0) return(-1);
  if(counted_bars>0) counted_bars--;
  limit=Bars-counted_bars;
//-------------------------------------
  //Comment(counted_bars);
  LineAp();
  LineDn();
//-------------------------------------
  return(0);
 }
//-----------------------------------------------------------------------------
  void LineDn(){
  FrPrise=NormalizeDouble(FindNearFractal(0,Period(),MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
  FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS));
  Comment(FrPrise);
  if(ObjectFind(FrDnNam)==0){
   if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
  FrDnPrise=FrPrise; 
  ObjectDelete(FrDnNam);
  SetHLine(ClDn,FrDnNam,FrDnPrise,0,1);
  WindowRedraw();
  return;} 
//-----------------------------------------------------------------------------
  void LineAp(){
  FrPrise=NormalizeDouble(FindNearFractal(0,Period(),MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
  FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS));
  if(ObjectFind(FrApNam)==0){
   if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
  FrApPrise=FrPrise; 
  ObjectDelete(FrApNam); 
  SetHLine(ClAp,FrApNam,FrApPrise,0,1);
  WindowRedraw();
  return;}  
//+----------------------------------------------------------------------------+
//| Автор  : Ким Игорь В. aka KimIV, [url]http://www.kimiv.ru[/url]          |
//+----------------------------------------------------------------------------+
//| Версия  : 07.10.2006                           |
//| Описание : Поиск ближайшего фрактала. Возвращает ценовой уровень.     |
//+----------------------------------------------------------------------------+
//| Параметры:                                |
//|  sy  - наименование инструмента   ("" или NULL - текущий символ)   |
//|  tf  - таймфрейм           (  0    - текущий ТФ)     |
//|  mode - тип фрактала         (MODE_LOWER|MODE_UPPER)      |
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
 if (sy=="" || sy=="0") sy=Symbol();
 double f=0;
 int  d=MarketInfo(sy, MODE_DIGITS), s;
 if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2;

 for (s=2; s<100; s++) {
  f=iFractals(sy, tf, mode, s);
  if (f!=0) return(NormalizeDouble(f, d));
 }
 Print("FindNearFractal(): Фрактал не найден");
 return(0);
}
//+----------------------------------------------------------------------------+
//| Автор  : Ким Игорь В. aka KimIV, [url]http://www.kimiv.ru[/url]          |
//+----------------------------------------------------------------------------+
//| Версия  : 30.03.2008                           |
//| Описание : Установка объекта OBJ_HLINE горизонтальная линия        |
//+----------------------------------------------------------------------------+
//| Параметры:                                |
//|  cl - цвет линии                             |
//|  nm - наименование        ("" - время открытия текущего бара)   |
//|  p1 - ценовой уровень      (0 - Bid)               |
//|  st - стиль линии        (0 - простая линия)          |
//|  wd - ширина линии        (0 - по умолчанию)           |
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
 if (nm=="") nm=DoubleToStr(Time[0], 0);
 if (p1<=0) p1=Bid;
 if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
 ObjectSet(nm, OBJPROP_PRICE1, p1);
 ObjectSet(nm, OBJPROP_COLOR , cl);
 ObjectSet(nm, OBJPROP_STYLE , st);
 ObjectSet(nm, OBJPROP_WIDTH , wd);
}
 

xrust

Почетный гражданин
Ну что , как результаты исследования? Выложиш?
 

VAK

Почетный гражданин
Выкладывать нечего, идет сплошной слив!
А ты сам попробуй. Может мысли появятся.
Пропиши в советник Ар и Dn и после запуска советника наложи индикатор. Увдишь.
Может придумаешь как удержать прибыль.
Спасибо за эксперементальный индикатор. Работает Классно!
 

xrust

Почетный гражданин
Дело, в том, что мысли уже появились, щас наваляю советника - проверю, а пока навскидку могу предложить ,такой вариант: при узком канале, например ночью работать вовнутрь канала, утром ждать пробоя наружу, а после 15 опять внутрь
 

VAK

Почетный гражданин
Логично! Ночью практическм флет. с утра возможен прорыв диапазона.
После закрытия европы тоже уменьшение волатильности.
В общем, работа по сессиям.
 

wenya

Активный участник
Здравствуйте уважаемые трейдеры. Пожалуйста, помогите написать простой советник на основе любого гистограммного индикатора, например MACD. Задача простая: когда гистограммы индикатора MACD пересекают нулевую горизонтальную линию снизу вверх, советник открывает ордер Buy, когда сверху вниз, соответственно советник открывает ордер Sell и закрывает предыдущий ордер Buy. То есть другими словами, открытие каждого нового ордера происходит при пересечении нулевой полосы гистограммного индикатора, причём в этот же момент предыдущий ордер закрывается. Ни каких стоп лоссов, тейк профитов и трейлинг стопов не нужно, единственное чтоб только объем (количество лотов) сделки можно было выставлять ))))

Во вложении скрин, там схематично всё показано...

Чуть не забыл сказать, что этот советник будет убыльным, ну или не прибыльным. Мне он нужен для того чтобы на его основе можно было бы сделать свой советник, на каком нибудь другом индикаторе или поэкспериментировать с настройками, ведь гистограммных индикаторов очень много... Этот советник будет своего рода шаблоном... Выручите пожалуйста, ОЧЕНЬ НАДООООО!!!!
 

Юрий FT

Модератор
Чуть не забыл сказать, что этот советник будет убыльным, ну или не прибыльным. Мне он нужен для того чтобы на его основе можно было бы сделать свой советник, на каком нибудь другом индикаторе или поэкспериментировать с настройками, ведь гистограммных индикаторов очень много... Этот советник будет своего рода шаблоном... Выручите пожалуйста, ОЧЕНЬ НАДООООО!!!!

Получите, распишитесь. :ta:
 

Вложения

  • MACD Sample2.mq4
    5,3 КБ · Просмотры: 65

wenya

Активный участник
Получите, распишитесь. :ta:
Я вобще хотел сделать советник из индикатора "Discipline ind". Внешне он очень похож на MACD. Может у кого нибудь есть советник на индикаторе "Discipline ind" или даже на любом другом гистограммном индикаторе(чтобы при пересечении нулевой линии ордера открывались, а предидущие закрывались)? Я был бы очень благодарен!!!
 

wenya

Активный участник
А аналогичный советник вот с этим индикатором можно сделать?
http://forum.fortrader.ru/showthread.php?t=965
тоже отличный индикатор, (покрайней мере на скрине шикарно...), но мне бы вот советника на таком или на любом другом гистограммном индикаторе. Как видите таких индикаторов много, вот я и прошу сделать такого советника, на основе которого можно будет сделать свой советник, привязав к нему другой (тоже гистограммный) индикатор... Соорудить так сказать ШАБЛОН!!!
 

Юлия

Главный редактор
А разве Юрий вам не именно такой шаблон предложил?
 

Ben

Активный участник
Исправил:
Код:
//+------------------------------------------------------------------+
//|                      Factal_Level_Xrust.mq4 |
//|                 Copyright © 2008, XrustSolution. |
//|                      [URL]http://xrust.ucoz.net[/URL] |
//+------------------------------------------------------------------+
#property copyright "#Copyright © 2008, XrustSolution.#"
#property link   "#xrust.ucoz.net#"
 
#property indicator_chart_window
extern int  Distanse=0;//
extern string FrApNam="Ap";
extern string FrDnNam="Dn";
extern color ClAp=Blue;
extern color ClDn=Red;
//-------------------------------------------------------------------+
double FrPrise;
double FrApPrise=0,FrDnPrise=0;
//+------------------------------------------------------------------+
int deinit()
 {
//----
ObjectsDeleteAll();  
Comment(" ");
//----
  return(0);
 }
//+------------------------------------------------------------------+
//| Custom indicator iteration function               |
//+------------------------------------------------------------------+
int start()
 {
  int  counted_bars=IndicatorCounted();
  int limit;
  double tmp;
  int i, j,k;
  if(counted_bars<0) return(-1);
  if(counted_bars>0) counted_bars--;
  limit=Bars-counted_bars;
//-------------------------------------
  //Comment(counted_bars);
  LineAp();
  LineDn();
//-------------------------------------
  return(0);
 }
//-----------------------------------------------------------------------------
  void LineDn(){
  FrPrise=NormalizeDouble(FindNearFractal(0,Period(),MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
  FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS));
  Comment(FrPrise);
  if(ObjectFind(FrDnNam)==0){
   if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
  FrDnPrise=FrPrise; 
  ObjectDelete(FrDnNam);
  SetHLine(ClDn,FrDnNam,FrDnPrise,0,1);
  WindowRedraw();
  return;} 
//-----------------------------------------------------------------------------
  void LineAp(){
  FrPrise=NormalizeDouble(FindNearFractal(0,Period(),MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
  FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS));
  if(ObjectFind(FrApNam)==0){
   if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
  FrApPrise=FrPrise; 
  ObjectDelete(FrApNam); 
  SetHLine(ClAp,FrApNam,FrApPrise,0,1);
  WindowRedraw();
  return;}  
//+----------------------------------------------------------------------------+
//| Автор  : Ким Игорь В. aka KimIV, [URL]http://www.kimiv.ru[/URL]          |
//+----------------------------------------------------------------------------+
//| Версия  : 07.10.2006                           |
//| Описание : Поиск ближайшего фрактала. Возвращает ценовой уровень.     |
//+----------------------------------------------------------------------------+
//| Параметры:                                |
//|  sy  - наименование инструмента   ("" или NULL - текущий символ)   |
//|  tf  - таймфрейм           (  0    - текущий ТФ)     |
//|  mode - тип фрактала         (MODE_LOWER|MODE_UPPER)      |
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
 if (sy=="" || sy=="0") sy=Symbol();
 double f=0;
 int  d=MarketInfo(sy, MODE_DIGITS), s;
 if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2;
 
 for (s=2; s<100; s++) {
  f=iFractals(sy, tf, mode, s);
  if (f!=0) return(NormalizeDouble(f, d));
 }
 Print("FindNearFractal(): Фрактал не найден");
 return(0);
}
//+----------------------------------------------------------------------------+
//| Автор  : Ким Игорь В. aka KimIV, [URL]http://www.kimiv.ru[/URL]          |
//+----------------------------------------------------------------------------+
//| Версия  : 30.03.2008                           |
//| Описание : Установка объекта OBJ_HLINE горизонтальная линия        |
//+----------------------------------------------------------------------------+
//| Параметры:                                |
//|  cl - цвет линии                             |
//|  nm - наименование        ("" - время открытия текущего бара)   |
//|  p1 - ценовой уровень      (0 - Bid)               |
//|  st - стиль линии        (0 - простая линия)          |
//|  wd - ширина линии        (0 - по умолчанию)           |
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
 if (nm=="") nm=DoubleToStr(Time[0], 0);
 if (p1<=0) p1=Bid;
 if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
 ObjectSet(nm, OBJPROP_PRICE1, p1);
 ObjectSet(nm, OBJPROP_COLOR , cl);
 ObjectSet(nm, OBJPROP_STYLE , st);
 ObjectSet(nm, OBJPROP_WIDTH , wd);
}

Вот бы ещё PlaySound на пробитие присобачить к этому индюку цены бо ему не было. Может кто-нибудь присобачет.
 

dan50

Прохожий
[langtitle=it]Seeking two indicators[/langtitle]

[lang=it]Anybody know these two indicators? E 'can get the download?
TFX Reversal Indicator and Trader's Indicator Index[/lang]
 
Верх