Доработка ботов (советников, индикаторов)

Статус
Закрыто для дальнейших ответов.

eevviill

Заблокирован
Здравствуйте. Мог бы кто нибудь помочь в написании закрывашки на основе индикатора, при появлении противоположного сигнала от ордера после закрытия свечи он бы закрывал ордер на том ТФ на котором установлен. Этакий трейлинг стоп.
Много (относительно) писать.
 

eevviill

Заблокирован
Просьба! а вы бы не могли бы : все лишнее в иникаторе убрать, оставить лишь симбол и пипсы как на картинке, и чтобы с графика не пропадал (пропадает появляется самостоятельно) ... после моего вмешательства.
Всё правильно сделал.
Только найди этот блок и поменяй на
PHP:
void setLabel(string name, int window, string text, color col, int corner,
              double angle, int x, int y, bool back = false, int fontsize = 9, 
              string fontname = "Tahoma") {
   if (ObjectFind(name)==-1)
     {
     ObjectCreate(name, OBJ_LABEL, window, 0, 0);
   
   ObjectSet(name, OBJPROP_CORNER, corner);
   ObjectSet(name, OBJPROP_ANGLE, angle);
   ObjectSet(name, OBJPROP_BACK,back);
   ObjectSet(name, OBJPROP_XDISTANCE, x);
   ObjectSet(name, OBJPROP_YDISTANCE, y);     
   ObjectSet(name, OBJPROP_COLOR, col);  
   }
    ObjectSetText(name, text, fontsize, fontname, col);
}

Суть в том чтобы если объект не найден то создать его и установить ему параметры. А кто написал так что объект создаётся и каждый тик меняется его координаты. Объекты не пропадают а ползут с каждым тиком вправо. Гы мимо экрана.
 

eevviill

Заблокирован
Доброго времени суток всем! Уважаемые программисты не смогли бы вы переделать советник Илан Динамик 1.6 Чтоб он закрывал тейк профит не усредняя позиции а по предыдущему выставленному ордеру Заранее благодарен
Готово. Держи.
 

rsl8989

Интересующийся
Торговля по времени и отключение совы

Ребят,может кто-то внедрял или использовал примочку какую-нибудь у себя в советниках. Идея такова ПРИ ЗАДАНИИ СОВЕТНИКУ ВРЕМЕНИ ТОРГОВЛИ, ПОСЛЕ ЗАВЕРШЕНИЯ ЭТОГО ВРЕМЕНИ ЗАКРЫВАЮТСЯ И ВСЕ ОРДЕРА ЭТОГО РОБОТА...?
 

Novikov

Гуру форума
В коде вроди всё ОК.

Эксперт не открывает новые ордера, но сегодня закрыл ордера висевшие с 03.01.14 в профите

мне по поводу кода написали: "...в некоторых местах в коде заметил return - как бы отмену открытия..."
Может ли это влиять на работу советника?

Советник Exp_PairTrader v43.mq4

Заранее благодарю!
 

rsl8989

Интересующийся
Торговля по времени и отключение совы №2

Ребят,может кто-то внедрял или использовал примочку какую-нибудь у себя в советниках. Идея такова ПРИ ЗАДАНИИ СОВЕТНИКУ ВРЕМЕНИ ТОРГОВЛИ, ПОСЛЕ ЗАВЕРШЕНИЯ ЭТОГО ВРЕМЕНИ ЗАКРЫВАЮТСЯ И ВСЕ ОРДЕРА ЭТОГО РОБОТА...?

Ребят нашел то, что нужно сова закрывает в опред время все позиции.
Посмотреть вложение e-CloseOnTime.rar

Внимание вопрос, можно ли добавить функцию (тру/фалс), чтобы можно было по меджикам закрывать позиции, скажем выставить 5 меджиков по которым нужно закрыть позиции в открытом терминале?
 

eevviill

Заблокирован
Ребят,может кто-то внедрял или использовал примочку какую-нибудь у себя в советниках. Идея такова ПРИ ЗАДАНИИ СОВЕТНИКУ ВРЕМЕНИ ТОРГОВЛИ, ПОСЛЕ ЗАВЕРШЕНИЯ ЭТОГО ВРЕМЕНИ ЗАКРЫВАЮТСЯ И ВСЕ ОРДЕРА ЭТОГО РОБОТА...?
Да. Где то на последних 20 страницах такое было.
 

ksardas

Гуру форума
Всем привет!
Есть такой пробойник BreakdownLevelCandleMA.mq4
Помогите прикрутить к нему открытие раз в день в заданное время и закрытие:
--extern string TimeSet = "08:30"; //Время в которое происходит выставление стоп ордеров
--extern string TimeClose = "Время закрытия";
extern int myHour =23;
extern int myMinute =59;
и/или ограничение понедельника
--extern bool TradeMonday = false; //торговать в понедельник
не знаю как :facepalm:
 

Вложения

АлександрV

Новичок форума
Какие нах уважаемые? На твой пост я ответил. Ты вместо того чтобы посмотреть, ещё 43 раза напечатай сообщение.
Извиняюсь что так получилось с дублированием . я не специально , просто сообщения сразу не отображались .И вот ту третью скобку я добавлял и сам . оно тогда выдавало 24 ошибки ( возможно из за выходных дней ). сейчас компилировалось но выдает такие сумасшедшие цифры - десятками тысяч.
 

eevviill

Заблокирован
Эксперт не открывает новые ордера, но сегодня закрыл ордера висевшие с 03.01.14 в профите

мне по поводу кода написали: "...в некоторых местах в коде заметил return - как бы отмену открытия..."
Может ли это влиять на работу советника?

Советник Exp_PairTrader v43.mq4

Заранее благодарю!
Единственное криминальное что есть это в переменных
PHP:
OpenPair
Trade
стоит false
тоесть торговля запрещена
гы
 

eevviill

Заблокирован
Извиняюсь что так получилось с дублированием . я не специально , просто сообщения сразу не отображались .И вот ту третью скобку я добавлял и сам . оно тогда выдавало 24 ошибки ( возможно из за выходных дней ). сейчас компилировалось но выдает такие сумасшедшие цифры - десятками тысяч.
Давай полный код, гляну.
 

eevviill

Заблокирован
Всем привет!
Есть такой пробойник BreakdownLevelCandleMA.mq4
Помогите прикрутить к нему открытие раз в день в заданное время и закрытие:
--extern string TimeSet = "08:30"; //Время в которое происходит выставление стоп ордеров
--extern string TimeClose = "Время закрытия";
extern int myHour =23;
extern int myMinute =59;
и/или ограничение понедельника
--extern bool TradeMonday = false; //торговать в понедельник
не знаю как :facepalm:
Много писать.
Это тебе надо что то типа
PHP:
bool OK=true;
...
int start()
{
...
if(Hour()==myHour_open && Minute()==myMinute_open_open && OK)
{
...
OrderSend
OK=false
}
if(Hour()!=myHour_open || Minute()!=myMinute_open) OK=true;

и т.д.
 
Последнее редактирование:

Novikov

Гуру форума
Единственное криминальное что есть это в переменных
PHP:
OpenPair
Trade
стоит false
тоесть торговля запрещена
гы

я в курсе про эти два false
он не торгует, когда эти два парамтера ставлю true :not-good:
и он все равно не хочет торговать :facepalm:
 

АлександрV

Новичок форума
Давай полный код, гляну.
Я очень далек от программирования и все леплю наощупь по найденным кускам и подсказкам . У меня нет исходника кода? есть только вот это написание в MQL4. если подскажите как вытянуть из этого написания исходник я это сделаю .
 

eevviill

Заблокирован
Я очень далек от программирования и все леплю наощупь по найденным кускам и подсказкам . У меня нет исходника кода? есть только вот это написание в MQL4. если подскажите как вытянуть из этого написания исходник я это сделаю .
Не добивайте мои мозги, просто прикрепите файл кторый не работает.
 

eevviill

Заблокирован
я в курсе про эти два false
он не торгует, когда эти два парамтера ставлю true :not-good:
и он все равно не хочет торговать :facepalm:
PHP:
 if(!OpenPair) return(0); 
   if(Trade && Terminal()==0) return(0);
   //--------------------------------------------------------------------
   // Open
   //-------------------------------------------------------------------- 
   if(Step<=0 && Terminal()!=0)return(0);
Вот всё что с ретурном.
1) Если переменная OpenPair=false
2) Если переменная Trade=true и нету открытых позиций
3) Если переменная степ меньше или ровно 0 и есть открытые позиции
 

eevviill

Заблокирован
Я очень далек от программирования и все леплю наощупь по найденным кускам и подсказкам . У меня нет исходника кода? есть только вот это написание в MQL4. если подскажите как вытянуть из этого написания исходник я это сделаю .
Вообщем так. Но по логике в коде бред. Сумируются свечи с разных валют и делятся на 1 поинт текущей валюты.
PHP:
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime
//--------------------------------------------------------------------
double Buffer[]; 
//--------------------------------------------------------------------
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2); 
SetIndexBuffer(0,Buffer); 
return(0); 
}
// -------------------------------------------------------------------

int deinit()
{

return(0);
}
//--------------------------------------------------------------------
int start()
{ 
int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)
{
Buffer[i] = NormalizeDouble(
((iClose("USDCHF",0,i)-iClose("USDCHF",0,i+1))+(iClose("USDJPY",0,i)-iClose("USDJPY",0,i-1))
+(iClose("USDCAD",0,i)-iClose("USDCAD",0,i-1))-(iClose("GBPUSD",0,i)-iClose("GBPUSD",0,i-1))-(iClose("EURUSD",0,i)
-iClose("EURUSD",0,i-1))-(iClose("AUDUSD",0,i)-iClose("AUDUSD",0,i-1))-(iClose("NZDUSD",0,i)-iClose("NZDUSD",0,i-1))
)/Point,0);
}

return(0);
}
 

ivanpivo

Прохожий
Добрый день. Всех поздравляю с прошедшими праздниками! Прошу помощи с доработкой советника. Хотелось бы добавить:
1. При срабатывании одних ордеров- противоположные удаляются;
2. При переводе в БУ можно было бы выставлять количество пунктов этого самого безубытка;
Для начала достаточно, нужно тестировать. Спасибо кто откликнется.
 

Вложения

Григорийй

Заблокирован
а линию внутри дня прикрутить к данному надо

Код:
ObjectCreate("SellTP3D1a", OBJ_LABEL, window, 0, 0);
   ObjectSet("SellTP3D1a", OBJPROP_CORNER, corner);
   ObjectSetText("SellTP3D1a", D1TargetSELL3, 8, "Tahoma", color_SellTPD1);
   ObjectSet("SellTP3D1a", OBJPROP_XDISTANCE, 5);
   ObjectSet("SellTP3D1a", OBJPROP_YDISTANCE, 3);
или к сюда прикрутить ...

Код:
double D1TS3 = D1P - (D1r * 0.764);
   D1TargetSELL3 = DoubleToStr(D1TS3,Digits);
имеется в виду когда данное срабатывает, линии отрисовывались бы или Red или Lime внутри дня как на картинке.

Код:
//+------------------------------------------------------------------+
   //D1_TREND
   string D1Mid="",D1Pivot="",D1OPEN="";
   color color_d1op,color_d1mid,color_MTD1,clr_TdD1,color_BuyTPD1,color_SellTPD1;
   double Open_D1 = iOpen(NULL,1440,0);
   D1OPEN =  (DoubleToStr(Open_D1,Digits));
   double D1r = iHigh(NULL,PERIOD_D1,1) - iLow(NULL,PERIOD_D1,1);
   double D1R = (iHigh(NULL,PERIOD_D1,1) + iLow(NULL,PERIOD_D1,1))/2;
   double D1P = (iHigh(NULL,PERIOD_D1,1) + iLow(NULL,PERIOD_D1,1) + iClose(NULL,PERIOD_D1,1))/3;
   D1Mid = DoubleToStr(D1R,Digits);
   D1Pivot = DoubleToStr(D1P,Digits);

   //D1_TREND
   string  D1TProfit1="",D1TProfit2="",D1TargetBUY1="",D1TargetBUY2="",D1TargetBUY3="",//1TargetBUY4="",
           D1_Trend="",D1_Today="",D1TargetSELL1="",D1TargetSELL2="",D1TargetSELL3="";//D1TargetSELL4="";
   double D1TB1 = D1P + (D1r * 0.236);
   D1TargetBUY1 = DoubleToStr(D1TB1,Digits);
   double D1TS1 = D1P - (D1r * 0.236);
   D1TargetSELL1 = DoubleToStr(D1TS1,Digits);
   double D1TB2 = D1P + (D1r * 0.5);
   D1TargetBUY2 = DoubleToStr(D1TB2,Digits);
   double D1TS2 = D1P - (D1r * 0.5);
   D1TargetSELL2 = DoubleToStr(D1TS2,Digits);
   double D1TB3 = D1P + (D1r * 0.764);
   D1TargetBUY3 = DoubleToStr(D1TB3,Digits);
   double D1TS3 = D1P - (D1r * 0.764);
   D1TargetSELL3 = DoubleToStr(D1TS3,Digits);
   
     if (D1OPEN > D1Pivot) {color_d1op=Lime;}
     if (D1OPEN < D1Pivot) {color_d1op=Red;}
     if (D1OPEN == D1Pivot) {color_d1op=Gray;}
     if (D1Mid > D1Pivot) {color_d1mid=Lime; D1TProfit2=D1TargetBUY1;}
     if (D1Mid < D1Pivot) {color_d1mid=Red; D1TProfit2=D1TargetSELL1;}
     if (D1Mid == D1Pivot) {color_d1mid=Gray; D1TProfit2="---------";}

   //MarketD1
     if (Teks > D1OPEN) D1_Trend = "p";
     if (Teks > D1OPEN) D1TProfit1 = D1TargetBUY1;
     if (Teks < D1Pivot) D1_Trend = "q";
     if (Teks < D1Pivot) D1TProfit1 = D1TargetSELL1;
     if ((Teks <= D1OPEN) && (Teks >= D1Pivot)) D1_Trend = "n";
     if ((Teks <= D1OPEN) && (Teks >= D1Pivot)) D1TProfit1 = "---------";
     if ((Teks <= D1OPEN) && (Teks >= D1Pivot)) {color_MTD1 = Gray; color_BuyTPD1 = Gray; color_SellTPD1 = Gray;}
     if (Teks > D1OPEN) {color_MTD1 = Lime; color_BuyTPD1 = Lime; color_SellTPD1 = Gray;}
     if (Teks < D1Pivot) {color_MTD1 = Red; color_BuyTPD1 = Gray; color_SellTPD1 = Red;}

     if ((Teks > D1OPEN) && (MA1_D1 > MA2_D1) && (MA1_D1 < MA5_D1)) {D1_Today = "p"; clr_TdD1 = Lime;}
     if ((Teks < D1OPEN) && (MA1_D1 < MA2_D1) && (MA1_D1 > MA5_D1)) {D1_Today = "q"; clr_TdD1 = Red;}
//+------------------------------------------------------------------+
 

Вложения

  • 2014-01-08_143541.png
    2014-01-08_143541.png
    13 КБ · Просмотры: 81
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.

Отслеживают (859) Посмотреть

Верх