Закрытая тема
20.12.2011, 20:13
Аватар для iceberg
iceberg iceberg вне форума € $ £ ¥ ₳
Регистрация: 05.10.2010 / Адрес: 3rd Planet / Сообщений: 2,665
Поблагодарили 9,678 раз(а) / Репутация: 9664
Индикатор Heart of Forex не возможно перелечить? На планшете экранчик маленький, когда индюк стоит в нижнем окошке, график совсем сплющенный в основном окне
Доктора, сделайте доброе дело, научите его стоять в основном окне.
Те, кто не в состоянии запомнить прошлого, приговорены его повторять. Дж. Сантаяна.
21.12.2011, 00:00
Аватар для Yoshimo
Yoshimo Yoshimo вне форума Местный знаток
Регистрация: 19.04.2010 / Сообщений: 204
Поблагодарили 336 раз(а) / Репутация: 361

По умолчанию просьба

Уважаемые программисты!
Хелп!
Бот стоит на одной паре, на разных тф, сдругим ботом, но подхватывает чужой ордер. Тоесть выстовляет свой (коэф.ув. , тп, растояние) в зависимости от уже открытого ордера другим ботом и меняет тп уже открытого ордера другим ботом. Вероятно надо посмотреть, есть ли у него проверка на магик, или может ещё быть другая причина?
Заранее благодарю.
Если не затруднит, вгляните.

Спасибо
26.12.2011, 21:43
Аватар для violeta
violeta violeta вне форума Прохожий
Регистрация: 03.12.2011 / Сообщений: 2
Поблагодарили 0 раз(а) / Репутация: 1
Уважаемые программисты!
Прошу переделать индикатор.
Суть работы, создать индикатор рисующий на одном графике трендовые линии текущего таймфрейма + старших и младших таймфреймов. С возможность во внешних настройках включать (отключать) отображаемые линии по таймфреймам и настройками толщины и цвета линий.
P.S. Есть индикатор, который можно взять за основу, один человечик брался за роботу но до нужного результата не дошел.
Имеющийся индикатор при переключении по таймфреймам наносит трендовые линии, но корректирует (сопровождает ) , только трендовуые линии на текущем таймфрейме графика.
Нужно его подправить чтоб, он отображал и корректировал заданные по таймфреймам трендовые линии на одном графике.
После доработки индикатора, выложу его в разделе "индикаторы" и объясню как его использовать.
Скрин с визуальным примером прилагаю.
Скажите, а этот индикатор вы еще не получили ?
Довольно итиресная идея. Из скрина я примерно поняла смысл работы. Было бы неплохо попробовать готовую версию.
28.12.2011, 22:16
Аватар для elixir
elixir elixir вне форума Новичок форума
Регистрация: 02.10.2011 / Сообщений: 27
Поблагодарили 8 раз(а) / Репутация: 9
Ребятки програмисты просьба прикрутить к стандартному советнику macd sample стоп лос по заданому количеству пунктов! за ранее спасибо
29.12.2011, 09:42
Аватар для TREBL
TREBL TREBL вне форума Активный участник
Регистрация: 28.07.2009 / Сообщений: 22
Поблагодарили 18 раз(а) / Репутация: 18
Добрые люди! Кому не в лом, то помогите бедному трейдеру. Прикрутите, пожалуйста, Stop к этой сове. Я даже знаю где кнопка " СПАСИБО ".
вот илан со стопами
29.12.2011, 09:43
Аватар для TREBL
TREBL TREBL вне форума Активный участник
Регистрация: 28.07.2009 / Сообщений: 22
Поблагодарили 18 раз(а) / Репутация: 18
может кто сделать чтобы на этой сове открывал ордера сразу а не с задержкой
02.01.2012, 15:56
Аватар для Frolov
Frolov Frolov вне форума Новичок форума
Регистрация: 06.11.2010 / Сообщений: 45
Поблагодарили 23 раз(а) / Репутация: 24
Всем здравствуйте. Уважаемые программисты , нужна Ваша помощь. Нужно написать функцию для проверки типа последнего закрытого ордера по магику . Раньше когда была 1 стратегия и магик не использовался тип последнего закрытого ордера по валютной паре проверялся функцией
int last_trade()
{
int i,type = -1;
datetime time=0;

for(i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderCloseTime()>time )
{

type = OrderType();
time = OrderOpenTime();

}
}

for(i=OrdersHistoryTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderCloseTime()>time )
{

type = OrderType();
time = OrderOpenTime();

}
}
return(type);
}
и потом при открытии ордера
if(last_trade()!=OP_BUY)
{
Условие открытия Buy
}
или
if(last_trade()!=OP_SELL)

{
Условие открытия для Sell
}
Сейчас нужно сделать тоже самое но, отдельно для каждой стратегии т.е. для каждого из 2 магиков.
Заранее спасибо.
02.01.2012, 17:10
Аватар для expforex
expforex expforex вне форума Программиров
Регистрация: 11.01.2009 / Сообщений: 2,136
Поблагодарили 2,105 раз(а) / Репутация: 2163
Всем здравствуйте. Уважаемые программисты , нужна Ваша помощь. Нужно написать функцию для проверки типа последнего закрытого ордера по магику . Раньше когда была 1 стратегия и магик не использовался тип последнего закрытого ордера по валютной паре проверялся функцией
int last_trade()
{
int i,type = -1;
datetime time=0;

for(i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderCloseTime()>time )
{

type = OrderType();
time = OrderOpenTime();

}
}

for(i=OrdersHistoryTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderCloseTime()>time )
{

type = OrderType();
time = OrderOpenTime();

}
}
return(type);
}
и потом при открытии ордера
if(last_trade()!=OP_BUY)
{
Условие открытия Buy
}
или
if(last_trade()!=OP_SELL)

{
Условие открытия для Sell
}
Сейчас нужно сделать тоже самое но, отдельно для каждой стратегии т.е. для каждого из 2 магиков.
Заранее спасибо.


Код:
int GetTypeLastClosePos(string sy="", int mn=-1) {
  datetime t;
  int      i, k=OrdersHistoryTotal(), r=-1;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if ((OrderSymbol()==sy || sy=="") && (mn<0 || OrderMagicNumber()==mn)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (t<OrderCloseTime()) {
            t=OrderCloseTime();
            r=OrderType();
          }
        }
      }
    }
  }
  return(r);
}
sy - символ mn - магик
возвращает тип

Спасибо за спасибо
Советники на заказ! admin@expforex.com
Говорим Спасибо
Frolov 
02.01.2012, 17:18
Аватар для Frolov
Frolov Frolov вне форума Новичок форума
Регистрация: 06.11.2010 / Сообщений: 45
Поблагодарили 23 раз(а) / Репутация: 24
[/CODE]sy - символ mn - магик
возвращает тип

Спасибо за спасибо[/QUOTE]

Огромное СПАСИБО за "скорую помощь" , буду пробовать
03.01.2012, 09:17
Аватар для ivan1234
ivan1234 ivan1234 вне форума Новичок форума
Регистрация: 23.07.2010 / Сообщений: 32
Поблагодарили 10 раз(а) / Репутация: 11
PHP код:
double koef = 1000; // в сколько раз увеличивать лот
double lot = 0.01
double clossprofit
= lot * koef // 0.01 * 1000 = 10 ...




ne moglibi vi vstaviti v sov, ato u menea nicevo ne poluciaetsa
traget profit от общего размера лота открытых позиций.
traget profit=TotalLot*koef
03.01.2012, 09:18
Аватар для ivan1234
ivan1234 ivan1234 вне форума Новичок форума
Регистрация: 23.07.2010 / Сообщений: 32
Поблагодарили 10 раз(а) / Репутация: 11
sam sov
03.01.2012, 19:22
Аватар для senyachubar
senyachubar senyachubar вне форума Прохожий
Регистрация: 03.01.2012 / Сообщений: 2
Поблагодарили 0 раз(а) / Репутация: 1

По умолчанию Нужна помощь программистов.

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

Скрытый текст

//===================================== Модификация SELL-колен ==================
if(Use_FX_Scalping == TRUE)
{

if(tots>0)
{
double smsell;

for (cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == symbol && OrderType() == OP_SELL && OrderMagicNumber()==Magic1)
{
ticketsell = OrderTicket();OrderSelect(ticketsell,SELECT_BY_TICKET, MODE_TRADES);
smsell+=OrderLots();openpricesell = OrderOpenPrice();lastlotsell = OrderLots(); profitsell+=OrderProfit();
stepS*=Step_coef;
}

}

if(tots==1)
{
tps = NormalizeDouble(Ask-((0-profitsell)/(smsell*TV)+TPsell2)*Point,Digits);
}
else
{
tps = NormalizeDouble(Ask-((0-profitsell)/(smsell*TV)+TPsell)*Point,Digits);
}
mtps = tps;



if (profitsell<=0)
{
if (NormalizeDouble(lastlotsell*mult,dig)<=maxLot && (AccountFreeMarginCheck(Symbol(),OP_SELL,lastlotsell*mult)>0))
{
if(Bid>=openpricesell+MathFloor(stepS)*Point && tots<MaxTrades)
{
lotssell2=lastlotsell*mult;
RefreshRates();
OrderSend(symbol,OP_SELL,NormalizeDouble(lotssell2,dig),NormalizeDouble(Bid,Digits),slippage,0,0,"EA",Magic1,0,Red);

}
}
}
}
}
if(Use_Breakout == TRUE)
{

if(totsB>0)
{
double smsell2;

for (cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == symbol && OrderType() == OP_SELL && OrderMagicNumber()==Magic2)
{
ticketsellB = OrderTicket();OrderSelect(ticketsellB,SELECT_BY_TICKET, MODE_TRADES);
smsell2+=OrderLots();openpricesellB = OrderOpenPrice();lastlotsellB = OrderLots(); profitsellB+=OrderProfit();
stepS*=Step_coef;
}

}

if(totsB==1)
{
tpsB = NormalizeDouble(Ask-((0-profitsellB)/(smsell2*TV2)+TPsell2B)*Point,Digits);
}
else
{
tpsB = NormalizeDouble(Ask-((0-profitsellB)/(smsell2*TV2)+TPsellB)*Point,Digits);

}
mtpsB = tpsB;



if (profitsellB<=0)
{
if (NormalizeDouble(lastlotsellB*mult,dig)<=maxLotB && (AccountFreeMarginCheck(Symbol(),OP_SELL,lastlotsellB*mult)>0))
{
if(Bid>=openpricesellB+MathFloor(stepS)*Point && totsB<MaxTrades)
{
lotssell2B=lastlotsellB*mult;
RefreshRates();
OrderSend(symbol,OP_SELL,NormalizeDouble(lotssell2B,dig),NormalizeDouble(Bid,Digits),slippage,0,0,"EA",Magic2,0,Red);

}
}
}
}
}
[свернуть]

Последний раз редактировалось chocolate; 04.01.2012 в 03:16.
04.01.2012, 17:32
Аватар для donc09
donc09 donc09 вне форума Элитный участник
Регистрация: 04.07.2010 / Адрес: Краснодар / Сообщений: 1,029
Поблагодарили 1,605 раз(а) / Репутация: 1609
Кто, чем может помочь. Есть индикатор фракталов. Рисует линии, но не всегда понять это новый фрактал или старый. Просьба модефицировать, чтоб рисовал стрелки.
Иду я против топора в руках сжимая лом, как символ торжества добра в его борьбе со злом.
04.01.2012, 21:08
Аватар для senyachubar
senyachubar senyachubar вне форума Прохожий
Регистрация: 03.01.2012 / Сообщений: 2
Поблагодарили 0 раз(а) / Репутация: 1
[QUOTE=senyachubar;362478]Здравствуйте уважаемые программисты. Надеюсь на этом форуме мне помогут. Пытаюсь переделать Илан под две стратегии , но я не программист и уперся в одну проблему . - Если запускать советник по одной из стратегий , то все работает . А если запускать советник сразу по двум стратегиям , то не выставляется тейк профит(не модифицируются ордера) и выдает ошибку "zero divide" . На сколько я понимаю проблема в выделенном куске , но как ее исправить не знаю и очень надеюсь на Вашу помощь.


СПАСИБО. РЕШЕНО
05.01.2012, 08:58
Аватар для a12lex
a12lex a12lex вне форума Новичок форума
Регистрация: 19.11.2011 / Сообщений: 14
Поблагодарили 6 раз(а) / Репутация: 7
прошу нужен советник по индикаторам

T3_CCI_ divergence_v1~.mq4
DT_ZZ_nen.mq4

Последний раз редактировалось a12lex; 05.01.2012 в 09:16.
05.01.2012, 09:19
Аватар для Vip_di
Vip_di Vip_di вне форума Местный житель
Регистрация: 07.11.2010 / Сообщений: 227
Поблагодарили 149 раз(а) / Репутация: 150

По умолчанию Помощь ПРОГРАММИСТА СРОЧНО

Прошу переделать индикатор UltraFatl под MQL4...

UltraFatl
05.01.2012, 15:05
Аватар для ilias00001
ilias00001 ilias00001 на форуме Местный житель
Регистрация: 31.03.2010 / Сообщений: 69
Поблагодарили 213 раз(а) / Репутация: 214
помогите переделать индикатор так чтоб в настройках можно было указать валютную пару к которой его применять

Скрытый текст


#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 Tomato
#property indicator_color3 Yellow

#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 1

#property indicator_level1 1
#property indicator_level2 0.25
#property indicator_level3 -0.25
#property indicator_level4 -1
#property indicator_levelcolor DarkSlateGray




extern int Price = 6;
extern int Method = 3;
extern int Methodx = 1;


extern bool UseUserVariables = True;
extern int FastPeriod = 11;//21
extern int SlowPeriod = 21;//144
extern int deltax = 1;

extern string notes = "If UseUserVariables set to false, Fast&SlowPeriods are preset for each TF";
extern string price_ = "0C 1O 2H 3L 4Md 5Tp 6WghC: Md(HL/2)4,Tp(HLC/3)5,Wgh(HLCC/4)6";
extern string Method_ = "SMA0 EMA1 SMMA2 LWMA3";

//---- parameters



int per1, per2;
//---- buffers
double up[];
double dn[];
double upx[];
double WorkBuffer[];
double WorkBuffer2[];
double WorkBufferx[];
double WorkBuffer2x[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
if (!UseUserVariables)
{
// for monthly
int mn_per = 12;
int mn_fast = 3;
// for weekly
int w_per = 9;
int w_fast = 3;
// for daily
int d_per = 5;
int d_fast = 3;
// for H4
int h4_per = 12;
int h4_fast = 2;
// for H1
int h1_per = 24;
int h1_fast = 8;
// for M30
int m30_per = 16;
int m30_fast = 2;
// for M15
int m15_per = 16;
int m15_fast = 4;
// for M5
int m5_per = 12;
int m5_fast = 3;
// for M1
int m1_per = 30;
int m1_fast = 10;
//----
}
//----
if (UseUserVariables)
{
per1=FastPeriod;
per2=SlowPeriod;
}
else
{
switch(Period())
{
case 1: per2 = m1_per; per1 = m1_fast; break;
case 5: per2 = m5_per; per1 = m5_fast; break;
case 15: per2 = m15_per; per1 = m15_fast; break;
case 30: per2 = m30_per; per1 = m30_fast; break;
case 60: per2 = h1_per; per1 = h1_fast; break;
case 240: per2 = h4_per; per1 = h4_fast; break;
case 1440: per2 = d_per; per1 = d_fast; break;
case 10080: per2 = w_per; per1 = w_fast; break;
case 43200: per2 = mn_per; per1 = mn_fast; break;
}
}


string Indicator_Name = "Vasily Pip Sniper ZL ("+per1+","+ per2+") ";
//-----
IndicatorBuffers(7);

SetIndexStyle (0, DRAW_LINE);
SetIndexBuffer(0, up);

SetIndexStyle (1, DRAW_LINE);
SetIndexBuffer(1, dn);

SetIndexStyle (2, DRAW_LINE);
SetIndexBuffer(2, upx);


SetIndexBuffer(3, WorkBuffer);
SetIndexBuffer(4, WorkBuffer2);
SetIndexBuffer(5, WorkBufferx);
SetIndexBuffer(6, WorkBuffer2x);

SetIndexDrawBegin(0, per1 + per2);
SetIndexDrawBegin(1, per1 + per2);
SetIndexDrawBegin(2, per1 + per2);

IndicatorShortName(Indicator_Name);

SetIndexLabel(0, "up "+Method );
SetIndexLabel(1, "dn "+Method );

SetIndexLabel(2, "upx "+Methodx );


return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars = IndicatorCounted();

//----
if(counted_bars < 0)
return(-1);
//----
if(counted_bars > 0)
counted_bars --;
limit = Bars - counted_bars;
//----
for(int i = 0; i < limit; i++)
{
WorkBuffer[i] = iMA(NULL, 0, per1, 0, Method, Price, i);
WorkBuffer2[i]= iMA(NULL, 0, per2, 0, Method, Price, i);

WorkBufferx[i] = iMA(NULL, 0, per1+deltax, 0, Methodx, Price, i);
WorkBuffer2x[i]= iMA(NULL, 0, per2+deltax, 0, Methodx, Price, i);

}

for(i = 0; i < limit; i++)
{

double wMA, wMA2, lMA, sMA;
double wMAx, wMA2x, lMAx, sMAx;


wMA = iMAOnArray(WorkBuffer, 0, per1, 0, Method, i);
lMA = 2*WorkBuffer[i]-wMA ;

wMA2 = iMAOnArray(WorkBuffer2, 0, per2, 0, Method, i);
sMA = 2*WorkBuffer2[i]-wMA2;



wMAx = iMAOnArray(WorkBufferx, 0, per1, 0, Methodx, i);
lMAx = 2*WorkBufferx[i]-wMAx ;

wMA2x = iMAOnArray(WorkBuffer2x, 0, per2, 0, Methodx, i);
sMAx = 2*WorkBuffer2x[i]-wMA2x;



up [i]=100*(lMA-sMA)/sMA;
upx[i]=100*(lMAx-sMAx)/sMAx;

dn [i]=-1*up[i];



}
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+

[свернуть]
05.01.2012, 20:12
Аватар для TvikN
TvikN TvikN вне форума Активный участник
Регистрация: 30.01.2011 / Сообщений: 183
Поблагодарили 56 раз(а) / Репутация: 57
Люди добрые,индикатор сбрасывает настройки.Посмотрите,пожал уйста, в чем дело.Большущее спасибо за помощь.
06.01.2012, 19:01
Аватар для TvikN
TvikN TvikN вне форума Активный участник
Регистрация: 30.01.2011 / Сообщений: 183
Поблагодарили 56 раз(а) / Репутация: 57
Парни,вынесите,пожалуйста в настройки,настройки вертикальной линии.Нужно 2 индюка в окне,а линии все одинаковые.Путаюсь.Надеюсь на вашу помощь.Для вас это не долго.Спасибо.
06.01.2012, 21:13
Аватар для dmitrii398
dmitrii398 dmitrii398 вне форума Новичок форума
Регистрация: 31.05.2010 / Адрес: Дзержинск / Сообщений: 55
Поблагодарили 6 раз(а) / Репутация: 7
уважаемые програмисты! у меня есть сова с дурацкими настройками,так вот он льет безбожно! и у меня возникла идея что если вместо покупки-продавать,и наооборот? тп и сл одинаковые(5и5) сам сов выкладываю.

Последний раз редактировалось dmitrii398; 06.01.2012 в 21:23.
Закрытая тема

Метки
mql программирование, дописать индикатор, дописать эксперт, доработать советник, форекс программирование


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь профессионального программиста в написании МТС индикаторов советников. cmillion Поиск программиста, поиск заказов 96 05.09.2017 08:20
Написание экспертов, индикаторов. Улсуги VPS для ваших советников. RL.Maxim Temp, корзина, реклама 5 31.10.2009 21:55
Написание советников, индикаторов, скриптов для MT4 по Вашему ТЗ Impish Поиск программиста, поиск заказов 0 04.04.2009 21:30


Текущее время: 14:21. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO