Написание экспертов и индикаторов - бесплатно!
#2761
Отправлено 20 January 2011 - 14:09
Господа, всех предупреждаю, написавший в заказе слова простенький или не сложный автоматически добавляется в мой личный бан-лист.
(Остальные программисты ко мне не имеют отношения и пусть поступают как хотят).
 
#2762
Отправлено 20 January 2011 - 14:09
ПризнаюВы просто некомпетентный программист. Признайте это
#2763
Отправлено 20 January 2011 - 14:22
Убрал слово "простенький". Теперь лучше? Смысл остался тот же. Кто может заложить идею в код?Зайдите в автомастерскую и скажите мастеру - да тут всё просто, просто мотор не работает...
Господа, всех предупреждаю, написавший в заказе слова простенький или не сложный автоматически добавляется в мой личный бан-лист.
(Остальные программисты ко мне не имеют отношения и пусть поступают как хотят).
#2764
Отправлено 20 January 2011 - 14:28
советника RSI тоже можете собрать из конструктораВсем привет, такая просьба нужен советник по одному индикатору RSI параметры 10 уровни 45 , 55 покупка пробитие 45 вверх , закрытие пробитие 45 вниз , продажа пробитие 55 вниз , закрытие пробитие 55 вверх .... если есть такой то скиньте плиз
#2765
Отправлено 20 January 2011 - 16:18
советника RSI тоже можете собрать из конструктора
Понимаете , если я чего то не понимаю, то даже не берусь это делать ... если я надену на себя хоккейную форму и возьму в руки клюшку я не стану хоккеистом.... может всё таки кто нибудь напишет?????
- Kortizon это нравится
#2766
Отправлено 20 January 2011 - 16:34
Прикрепленные файлы
#2767
Отправлено 20 January 2011 - 16:54
В частности выполняет функции динамического трала. Однако тралит не конкретные ордера, а эквити по сумме всех ордеров.
Советника прилагаю.
Для корректной работы сначала установите ордера.
Прикрепленные файлы
#2768
Отправлено 20 January 2011 - 19:24
Тут с помощью твоего кода пытался сделать грааль, ну сам понимаешь из меня
крутой программист не получился - не простая это наука писать граали.
Просьба у меня к тебе такая:
там открываются при определенных условиях ордера (стоплос убрал сознательно поскольку осенила одна мыслишка);
можно сделать, чтоб ордера закрывались таким образом, допустим один ордер пошел в минус а два или три
других в плюс (а может и больше) и закрытие происходило бы всех этих ордеров с какой то общей прибылью
(скажем 10 пунктов вот это вынести в переменные советника).
ТейкПрофит наверно можно оставить.
Вот код советника - e-TRendovii.mq4 4.39К 21 скачиваний
Буду очень признателен за оказанную помощь.
#2769
Отправлено 21 January 2011 - 06:44
тестирй свой РСИ...
Огромное спасибо!!!!
#2770
Отправлено 21 January 2011 - 08:05
Всем привет, такая просьба нужен советник по одному индикатору RSI параметры 10 уровни 45 , 55 покупка пробитие 45 вверх , закрытие пробитие 45 вниз , продажа пробитие 55 вниз , закрытие пробитие 55 вверх .... если есть такой то скиньте плиз
Микелянджело вы уже писали по РСИ может переделаете под мои параметры .... плиз.
#2771
Отправлено 21 January 2011 - 08:28
правильно сделал, что убрал... хотя просткнький для тебя - не простеньки для кодирования... что значит веер фибоначи - набор лучей (по моему трех) и для каждого луча существует уравнение прямой... проведя просто трендовую линию - получаем искомое уравнение, а с лучами веера нужно повозиться... поступим скорей всего так... я накропаю код расчета, а кто-нить другой поможет мне его вставить в индикатор... ну не дружу я с индикаторами...Убрал слово "простенький". Теперь лучше? Смысл остался тот же. Кто может заложить идею в код?
в этой ветке выкладывал советника И.Кима, который закрывает все рыночные ордера и удаляет отложки при достижении определенного количества (в процентах о депо) прибыли или убытка... протестируй свою идею с помощью этого советника и посмотришь реальна она или нет?Доброго времени суток Michelangelo.
Тут с помощью твоего кода пытался сделать грааль, ну сам понимаешь из меня
крутой программист не получился - не простая это наука писать граали.
Просьба у меня к тебе такая:
там открываются при определенных условиях ордера (стоплос убрал сознательно поскольку осенила одна мыслишка);
можно сделать, чтоб ордера закрывались таким образом, допустим один ордер пошел в минус а два или три
других в плюс (а может и больше) и закрытие происходило бы всех этих ордеров с какой то общей прибылью
(скажем 10 пунктов вот это вынести в переменные советника).
ТейкПрофит наверно можно оставить.
Вот код советника - e-TRendovii.mq4 4.39К 21 скачиваний
Буду очень признателен за оказанную помощь.
а уровень 10 в твоем РСИ зачем? если ты открываешься и закрываешься на 45-55? да вот еще писал тут для инфовируса советник по РСИ так он так и не заработал... у него правда там порядка 8 уровней было... а все дело в том, что перерисовывается не подецки... вы смотрите на историю и видите - вот тут бы я купил... а тут продал... а в режиме реального времени или РСИ еще недошел до нужного уровня или уже давно ускакал... и не входит грааль там где в последствии на истории будет четкий вход...Микелянджело вы уже писали по РСИ может переделаете под мои параметры .... плиз.
вот еще - РСИ не непрерывная функция, т.е. если вы поставите в стандартном РСИ рисовать значения не линией а точкой вы увидите ГЭПЫ!!! а на графике все как-то красиво и непрерывно...
- valenok2003 и Шурагон это нравится
Возможно все! ...что ниже скорости света!
Невозможное делаю сразу! Чудо требует незначительной подготовки...
Пришел, увидел, нафлудил...
#2772
Отправлено 21 January 2011 - 09:25
Если вы разобрались с работой терминала МТ4, то сможете разобраться и с конструктором. Знаний программирования не тр*цензура*ется.Понимаете , если я чего то не понимаю, то даже не берусь это делать ... если я надену на себя хоккейную форму и возьму в руки клюшку я не стану хоккеистом.... может всё таки кто нибудь напишет?????
#2773
Отправлено 21 January 2011 - 10:23
а уровень 10 в твоем РСИ зачем? если ты открываешься и закрываешься на 45-55? да вот еще писал тут для инфовируса советник по РСИ так он так и не заработал... у него правда там порядка 8 уровней было... а все дело в том, что перерисовывается не подецки... вы смотрите на историю и видите - вот тут бы я купил... а тут продал... а в режиме реального времени или РСИ еще недошел до нужного уровня или уже давно ускакал... и не входит грааль там где в последствии на истории будет четкий вход...
вот еще - РСИ не непрерывная функция, т.е. если вы поставите в стандартном РСИ рисовать значения не линией а точкой вы увидите ГЭПЫ!!! а на графике все как-то красиво и непрерывно...
Да нет там всего два уровня 45 и 55 , 10 это сам РСИ я не знаю учитывается он в советнике или нет поэтому и написал , так написал что вы подумали что это уровень ... я потом буду к нему подбирать фильтр так что это только начало )))) потестю , погоняю посмотрю буду пробовать с разными индюками , есть пара центовых счетов , а то на демо это не тест , так баловство я её ручками тестю пока получается не очень , не успеваю иногда , а советник чисто по сигналам бы работал вот хочу проверить...
у него получится "мертвая зона" от 45 до 55 в которой он не торгует , так что заработает ))) по любому какую то линию пробьёт и ему придёться открыться )))).... и ещё не знаю надо это или нет спред чтоб можно было выбирать , а то у меня один счёт с фиксированым , второй с плавающим ...
Сообщение отредактировал Шурагон: 21 January 2011 - 11:05
- Kortizon это нравится
#2774
Отправлено 21 January 2011 - 10:48
правильно сделал, что убрал... хотя просткнький для тебя - не простеньки для кодирования... что значит веер фибоначи - набор лучей (по моему трех) и для каждого луча существует уравнение прямой... проведя просто трендовую линию - получаем искомое уравнение, а с лучами веера нужно повозиться... поступим скорей всего так... я накропаю код расчета, а кто-нить другой поможет мне его вставить в индикатор... ну не дружу я с индикаторами...
Нашел индикатор с веером, может его переделать как нибудь?
Прикрепленные файлы
- Шурагон это нравится
#2775
Отправлено 21 January 2011 - 12:31
советник вроде не плохой,но он почему то выставляет ордера на откат в определенном количестве 5 или 6 ,тоесть к примеру он покупает 0.02 не попадает в тренд и берет через определенное количество пипсов в ту же сторону 0.06 потом 0.18 и так далее до 5 или 6 колен , где этот код прописан хотелось бы изменить в большую сторону не 5-6 а 15-20
#property copyright "X-module 1.0"
#property link "http://www.x-module.ru"
//На 1000 дол. нада старт лот 0.02
//На 2000 дол. нада старт лот 0.04
//На 4000 дол. нада старт лот 0.08 і т.д.
extern double Lots = 0.02;
extern double TakeProfit = 45.0;
extern double Booster = 1.86;
extern int PipStarter = 45;
double gd_112 = 0.0;
int gi_120 = 0;
extern int MaxTradesPerChart = 9;
extern int StartHour = 0;
extern int StopHour = 24;
int gi_136 = 55;
extern int StartingTradeDay = 0;
extern int EndingTradeDay = 5;
extern int slippage = 3;
int g_magic_152;
double g_lots_156;
int g_period_164 = 7;
int gi_168 = 0;
int g_ma_method_172 = MODE_LWMA;
int g_applied_price_176 = PRICE_WEIGHTED;
double gd_180 = 0.25;
double gd_188 = 0.2;
extern bool SupportECN = FALSE;
int gi_200;
bool gi_unused_204 = FALSE;
string gs_dummy_208;
int gi_216;
int gi_220;
int gi_224 = 0;
int gi_228 = 1;
int gi_unused_232 = 3;
int gi_236 = 250;
int deinit() {
return (0);
}
int init() {
if (Digits == 3) {
gd_112 = 10.0 * TakeProfit;
gi_120 = 10.0 * PipStarter;
} else {
if (Digits == 5) {
gd_112 = 10.0 * TakeProfit;
gi_120 = 10.0 * PipStarter;
} else {
gd_112 = TakeProfit;
gi_120 = PipStarter;
}
}
if (Symbol() == "AUDCADm" || Symbol() == "AUDCAD" || Symbol() == "AUDCAD.") g_magic_152 = 133701;
if (Symbol() == "AUDJPYm" || Symbol() == "AUDJPY" || Symbol() == "AUDJPY.") g_magic_152 = 133702;
if (Symbol() == "AUDNZDm" || Symbol() == "AUDNZD" || Symbol() == "AUDNZD.") g_magic_152 = 133703;
if (Symbol() == "AUDUSDm" || Symbol() == "AUDUSD" || Symbol() == "AUDUSD.") g_magic_152 = 133704;
if (Symbol() == "CHFJPYm" || Symbol() == "CHFJPY" || Symbol() == "CHFJPY.") g_magic_152 = 133705;
if (Symbol() == "EURAUDm" || Symbol() == "EURAUD" || Symbol() == "EURAUD.") g_magic_152 = 133706;
if (Symbol() == "EURCADm" || Symbol() == "EURCAD" || Symbol() == "EURCAD.") g_magic_152 = 133707;
if (Symbol() == "EURCHFm" || Symbol() == "EURCHF" || Symbol() == "EURCHF.") g_magic_152 = 133708;
if (Symbol() == "EURGBPm" || Symbol() == "EURGBP" || Symbol() == "EURGBP.") g_magic_152 = 133709;
if (Symbol() == "EURJPYm" || Symbol() == "EURJPY" || Symbol() == "EURJPY.") g_magic_152 = 133710;
if (Symbol() == "EURUSDm" || Symbol() == "EURUSD" || Symbol() == "EURUSD.") g_magic_152 = 133711;
if (Symbol() == "GBPCHFm" || Symbol() == "GBPCHF" || Symbol() == "GBPCHF.") g_magic_152 = 133712;
if (Symbol() == "GBPJPYm" || Symbol() == "GBPJPY" || Symbol() == "GBPJPY.") g_magic_152 = 133713;
if (Symbol() == "GBPUSDm" || Symbol() == "GBPUSD" || Symbol() == "GBPUSD.") g_magic_152 = 133714;
if (Symbol() == "NZDJPYm" || Symbol() == "NZDJPY" || Symbol() == "NZDJPY.") g_magic_152 = 133715;
if (Symbol() == "NZDUSDm" || Symbol() == "NZDUSD" || Symbol() == "NZDUSD.") g_magic_152 = 133716;
if (Symbol() == "USDCHFm" || Symbol() == "USDCHF" || Symbol() == "USDCHF.") g_magic_152 = 133717;
if (Symbol() == "USDJPYm" || Symbol() == "USDJPY" || Symbol() == "USDJPY.") g_magic_152 = 133718;
if (Symbol() == "USDCADm" || Symbol() == "USDCAD" || Symbol() == "USDCAD.") g_magic_152 = 133719;
if (g_magic_152 == 0) g_magic_152 = 133799;
gi_200 = MathRound((-MathLog(MarketInfo(Symbol(), MODE_LOTSTEP))) / 2.302585093);
return (0);
}
int IsTradeTime() {
if (StartHour < StopHour && TimeHour(TimeCurrent()) < StartHour || TimeHour(TimeCurrent()) >= StopHour) return (0);
if (StartHour > StopHour && (TimeHour(TimeCurrent()) < StopHour && TimeHour(TimeCurrent()) >= StopHour)) return (0);
if (StopHour == 0) StopHour = 24;
if (Hour() == StopHour - 1 && Minute() >= gi_136) return (0);
return (1);
}
void OpenBuy() {
int l_ticket_0;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", TimeCurrent());
if (SupportECN && IsTradeTime() == 1 && DayOfWeek() >= StartingTradeDay && DayOfWeek() <= EndingTradeDay) l_ticket_0 = OrderSend(Symbol(), OP_BUY, g_lots_156, Ask, slippage, 0, 0, "x-moduleBuy™", g_magic_152, 0, Green);
else
if (IsTradeTime() == 1 && DayOfWeek() >= StartingTradeDay && DayOfWeek() <= EndingTradeDay) l_ticket_0 = OrderSend(Symbol(), OP_BUY, g_lots_156, Ask, slippage, 0, Ask + gd_112 * Point, "x-moduleBuy™", g_magic_152, 0, Green);
GlobalVariableDel("InTrade");
}
}
void OpenSell() {
int l_ticket_0;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", TimeCurrent());
if (SupportECN && IsTradeTime() == 1 && DayOfWeek() >= StartingTradeDay && DayOfWeek() <= EndingTradeDay) l_ticket_0 = OrderSend(Symbol(), OP_SELL, g_lots_156, Bid, slippage, 0, 0, "x-moduleSell™", g_magic_152, 0, Pink);
else
if (IsTradeTime() == 1 && DayOfWeek() >= StartingTradeDay && DayOfWeek() <= EndingTradeDay) l_ticket_0 = OrderSend(Symbol(), OP_SELL, g_lots_156, Bid, slippage, 0, Bid - gd_112 * Point, "x-moduleSell™", g_magic_152, 0, Pink);
GlobalVariableDel("InTrade");
}
}
void ManageBuy() {
int l_datetime_0 = 0;
double l_ord_open_price_4 = 0;
double l_ord_lots_12 = 0;
double l_ord_takeprofit_20 = 0;
int l_cmd_28 = -1;
int l_ticket_32 = 0;
int l_pos_36 = 0;
for (l_pos_36 = 0; l_pos_36 < OrdersTotal(); l_pos_36++) {
OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() != g_magic_152 || OrderType() != OP_BUY) continue;
if (OrderOpenTime() > l_datetime_0 && IsTradeTime() == 1) {
l_datetime_0 = OrderOpenTime();
l_ord_open_price_4 = OrderOpenPrice();
l_cmd_28 = OrderType();
l_ticket_32 = OrderTicket();
l_ord_takeprofit_20 = OrderTakeProfit();
}
if (OrderLots() > l_ord_lots_12) l_ord_lots_12 = OrderLots();
}
double l_isar_40 = iSAR(NULL, 0, gd_180, gd_188, 0);
double l_ima_48 = iMA(NULL, 0, g_period_164, gi_168, g_ma_method_172, g_applied_price_176, 0);
int li_56 = MathRound(MathLog(l_ord_lots_12 / Lots) / MathLog(Booster)) + 1.0;
if (li_56 < 0) li_56 = 0;
g_lots_156 = NormalizeDouble(Lots * MathPow(Booster, li_56), gi_200);
if ((li_56 == 0 && l_isar_40 < l_ima_48 && DayOfWeek() < EndingTradeDay) || (li_56 == 0 && l_isar_40 < l_ima_48 && DayOfWeek() >= StartingTradeDay && DayOfWeek() <= EndingTradeDay)) OpenBuy();
if (l_ord_open_price_4 - Ask > gi_120 * Point && li_56 < MaxTradesPerChart) {
OpenBuy();
return;
}
for (l_pos_36 = 0; l_pos_36 < OrdersTotal(); l_pos_36++) {
OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() != g_magic_152 || OrderType() != OP_BUY || OrderTakeProfit() == l_ord_takeprofit_20 || l_ord_takeprofit_20 == 0.0) continue;
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), l_ord_takeprofit_20, 0, Pink);
}
}
void ManageSell() {
int l_datetime_0 = 0;
double l_ord_open_price_4 = 0;
double l_ord_lots_12 = 0;
double l_ord_takeprofit_20 = 0;
int l_cmd_28 = -1;
int l_ticket_32 = 0;
int l_pos_36 = 0;
for (l_pos_36 = 0; l_pos_36 < OrdersTotal(); l_pos_36++) {
OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() != g_magic_152 || OrderType() != OP_SELL) continue;
if (OrderOpenTime() > l_datetime_0 && IsTradeTime() == 1) {
l_datetime_0 = OrderOpenTime();
l_ord_open_price_4 = OrderOpenPrice();
l_cmd_28 = OrderType();
l_ticket_32 = OrderTicket();
l_ord_takeprofit_20 = OrderTakeProfit();
}
if (OrderLots() > l_ord_lots_12) l_ord_lots_12 = OrderLots();
}
double l_isar_40 = iSAR(NULL, 0, gd_180, gd_188, 0);
double l_ima_48 = iMA(NULL, 0, g_period_164, gi_168, g_ma_method_172, g_applied_price_176, 0);
int li_56 = MathRound(MathLog(l_ord_lots_12 / Lots) / MathLog(Booster)) + 1.0;
if (li_56 < 0) li_56 = 0;
g_lots_156 = NormalizeDouble(Lots * MathPow(Booster, li_56), gi_200);
if ((li_56 == 0 && l_isar_40 > l_ima_48 && DayOfWeek() < EndingTradeDay) || (li_56 == 0 && l_isar_40 > l_ima_48 && DayOfWeek() >= StartingTradeDay && DayOfWeek() <= EndingTradeDay)) OpenSell();
if (Bid - l_ord_open_price_4 > gi_120 * Point && l_ord_open_price_4 > 0.0 && li_56 < MaxTradesPerChart) {
OpenSell();
return;
}
for (l_pos_36 = 0; l_pos_36 < OrdersTotal(); l_pos_36++) {
OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() != g_magic_152 || OrderType() != OP_SELL || OrderTakeProfit() == l_ord_takeprofit_20 || l_ord_takeprofit_20 == 0.0) continue;
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), l_ord_takeprofit_20, 0, Pink);
}
}
int start() {
if (SupportECN) {
for (int l_pos_0 = 0; l_pos_0 < OrdersTotal(); l_pos_0++) {
if (OrderSelect(l_pos_0, SELECT_BY_POS)) {
if (OrderMagicNumber() == g_magic_152) {
if (OrderTakeProfit() == 0.0) {
if (OrderType() == OP_BUY) OrderModify(OrderTicket(), 0, OrderStopLoss(), OrderOpenPrice() + gd_112 * Point, 0, White);
else
if (OrderType() == OP_SELL) OrderModify(OrderTicket(), 0, OrderStopLoss(), OrderOpenPrice() - gd_112 * Point, 0, White);
}
}
}
}
}
if (Check() != 0) {
ManageBuy();
ManageSell();
ChartComment();
return (0);
}
return (0);
}
void ChartComment() {
string l_dbl2str_0 = DoubleToStr(balanceDeviation(2), 2);
Comment(" \nx-module V1.0™ ",
"\nAccount Leverage : " + "1 : " + AccountLeverage(),
"\nAccount Type : " + AccountServer(),
"\nServer Time : " + TimeToStr(TimeCurrent(), TIME_SECONDS),
"\nAccount Equity = ", AccountEquity(),
"\nFree Margin = ", AccountFreeMargin(),
"\nDrawdown : ", l_dbl2str_0, "%\n");
}
int Check() {
return (1);
}
double balanceDeviation(int ai_0) {
double ld_ret_4;
if (ai_0 == 2) {
ld_ret_4 = (AccountEquity() / AccountBalance() - 1.0) / (-0.01);
if (ld_ret_4 > 0.0) return (ld_ret_4);
return (0);
}
if (ai_0 == 1) {
ld_ret_4 = 100.0 * (AccountEquity() / AccountBalance() - 1.0);
if (ld_ret_4 > 0.0) return (ld_ret_4);
return (0);
}
return (0.0);
}
Прикрепленные файлы
- Necron это нравится