Konstantin Bystrov: Всем привет. кто может написать индикатор в мт4, чтоб активные торговые сессии (можно выставить время например с 10-18) отображались в виде японских свечей
Есть ли здесь умельцы, которые могли бы написать советник на основе информационного индикатора силы валют. Алгоритм следующий. Дожидаемся появление сильной и слабой валюты. В примере на скриншоте, это EUR и USD. Если разница существенная( должна задаваться в параметрах советника), то входим в позицию. В примере на скриншоте необходимо войти в sell, что и сделаю в понедельник. В советнике нужно задать параметр таймфрейма, с которого советник должен брать сигнал( разницу силы валют). Разница силы валют и является тем самым сигналом. Стоп лосс не нужен. Тейк профит нужен. Если цена пошла против нас, усредняемся. В советнике прописываем шаг усреднения, количество ордеров, магик, начальный размер лота, коэффициент увеличения лота. Торгую данным методом недавно, очень доволен. Для моего восприятия, это грааль.
Konstantin Bystrov: Всем привет. кто может написать индикатор в мт4, чтоб активные торговые сессии (можно выставить время например с 10-18) отображались в виде японских свечей
//+------------------------------------------------------------------+//+------------------------------------------------------------------+#property copyright""#property link""#property indicator_chart_windowexternint NumberOfDays = 50;
externstring AsiaBegin = "10:00";
externstring AsiaEnd = "18:00";
externcolor AsiaColor = Goldenrod;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+void init()
{
DeleteObjects();
for(int i=0; i<NumberOfDays; i++)
CreateObjects("AS"+i, AsiaColor);
Comment("");
}
//+------------------------------------------------------------------+//| Custor indicator deinitialization function |//+------------------------------------------------------------------+void deinit()
{
DeleteObjects();
Comment("");
}
//+------------------------------------------------------------------+bool CreateObjects(
conststring name="Rectangle", // имя прямоугольникаconstcolor clr=clrRed, // цвет прямоугольникаconstlong chart_ID=0, // ID графикаconstint sub_window=0, // номер подокнаdatetime time1=0, // время первой точкиdouble price1=0, // цена первой точкиdatetime time2=0, // время второй точкиdouble price2=0, // цена второй точкиconstENUM_LINE_STYLE style=STYLE_SOLID, // стиль линий прямоугольникаconstint width=2, // толщина линий прямоугольникаconstbool fill=false, // заливка прямоугольника цветомconstbool back=false, // на заднем планеconstbool selection=false, // выделить для перемещенийconstbool hidden=true, // скрыт в списке объектовconstlong z_order=0) // приоритет на нажатие мышью
{
//--- сбросим значение ошибкиResetLastError();
//--- создадим прямоугольник по заданным координатамif(!ObjectCreate(chart_ID,name,OBJ_RECTANGLE,sub_window,time1,price1,time2,price2))
{
Print(__FUNCTION__,
": не удалось создать прямоугольник! Код ошибки = ",GetLastError());
return(false);
}
//--- установим цвет прямоугольникаObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль линий прямоугольникаObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим толщину линий прямоугольникаObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
//--- включим (true) или отключим (false) режим заливки прямоугольникаObjectSetInteger(chart_ID,name,OBJPROP_FILL,fill);
//--- отобразим на переднем (false) или заднем (true) планеObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- включим (true) или отключим (false) режим выделения прямоугольника для перемещений//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection//--- по умолчанию равен true, что позволяет выделять и перемещать этот объектObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектовObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установим приоритет на получение события нажатия мыши на графикеObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- успешное выполнениеreturn(true);
}
//+------------------------------------------------------------------+void DeleteObjects()
{
for(int i=0; i<NumberOfDays; i++)
ObjectDelete("AS"+i);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+void start()
{
datetime dt=CurTime();
for(int i=0; i<NumberOfDays; i++)
{
DrawObjects(dt, "AS"+i, AsiaBegin, AsiaEnd);
dt=decDateTradeDay(dt);
while(TimeDayOfWeek(dt)>5)
dt=decDateTradeDay(dt);
}
}
//+------------------------------------------------------------------+void DrawObjects(datetime dt, string no, string tb, string te)
{
datetime t1, t2;
double p1, p2;
int b1, b2;
t1=StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb);
t2=StrToTime(TimeToStr(dt, TIME_DATE)+" "+te);
if(!TimeDayOfWeek(t1))
return;
b1=iBarShift(NULL, 0, t1);
b2=iBarShift(NULL, 0, t2);
p1=High[Highest(NULL, 0, MODE_HIGH, b1-b2, b2)];
p2=Low [Lowest(NULL, 0, MODE_LOW, b1-b2, b2)];
ObjectSet(no, OBJPROP_TIME1, t1);
ObjectSet(no, OBJPROP_PRICE1, p1);
ObjectSet(no, OBJPROP_TIME2, t2);
ObjectSet(no, OBJPROP_PRICE2, p2);
}
//+------------------------------------------------------------------+datetime decDateTradeDay(datetime dt)
{
int ty=TimeYear(dt);
int tm=TimeMonth(dt);
int td=TimeDay(dt);
int th=TimeHour(dt);
int ti=TimeMinute(dt);
td--;
if(td==0)
{
tm--;
if(tm==0)
{
ty--;
tm=12;
}
if(tm==1 || tm==3 || tm==5 || tm==7 || tm==8 || tm==10 || tm==12)
td=31;
if(tm==2)
if(MathMod(ty, 4)==0)
td=29;
else
td=28;
if(tm==4 || tm==6 || tm==9 || tm==11)
td=30;
}
return(StrToTime(ty+"."+tm+"."+td+" "+th+":"+ti));
}
//+------------------------------------------------------------------+
Здравствуйте уважаемые гуру программирования, прошу у вас помощи закончить этого робота.
Я сам не программист, данного робота собрал сам из разных частей найденных на просторах интернета, но никак не могу прикрутить оставшиеся две функции которые хотелось бы видеть. Помогите пожалуйста. Я думаю что для вас это не будет так сложно как мне. Если вас не затруднит прикрутите пожалуйста, функцию которая закрывала бы отложенный ордер после того как один из двух отложенных сработал. И вторая функция должна сама увеличивать лот ордера ( "допустим" на каждые 50$ баланса 0,01 лот, по достижении 100$ что б робот сам поднял лот на 0,02). Заранее спасибо за помощь.
externint TakeProfit = 100.0;
externbool AllPositions = True; // Управлять всеми позициямиexternbool ProfitTrailing = True; // Тралить только профитexternint TrailingStop = 50; // Фиксированный размер тралаexternint TrailingStep = 0; // Шаг тралаexternbool UseSound = False; // Использовать звуковой сигналexternstring NameFileSound = "expert.wav"; // Наименование звукового файлаvoid start()
{
double TakeProfitLevelB;
double TakeProfitLevelS;
double BuyStart = Ask + 400*_Point;
double SellStart = Bid - 400*_Point;
TakeProfitLevelB = BuyStart + TakeProfit*Point;
TakeProfitLevelS = SellStart - TakeProfit*Point;
if (Open[1]==Close[1]&& OrdersTotal()==0)
{
int BuyTicket = OrderSend(Symbol(),OP_BUYSTOP,0.10,BuyStart,3,0,TakeProfitLevelB,NULL,0,0,Green);
int SellTicket = OrderSend(Symbol(),OP_SELLSTOP,0.10,SellStart,3,0,TakeProfitLevelS,NULL,0,0,Blue);
}
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (AllPositions || OrderSymbol()==Symbol()) {
TrailingPositions();
}
}
}
}
void TrailingPositions()
{
double pBid, pAsk, pp;
pp = MarketInfo(OrderSymbol(), MODE_POINT);
if (OrderType()==OP_BUY) {
pBid = MarketInfo(OrderSymbol(), MODE_BID);
if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp) {
if (OrderStopLoss()<pBid-(TrailingStop+TrailingStep-1)*pp) {
ModifyStopLoss(pBid-TrailingStop*pp);
return;
}
}
}
if (OrderType()==OP_SELL) {
pAsk = MarketInfo(OrderSymbol(), MODE_ASK);
if (!ProfitTrailing || OrderOpenPrice()-pAsk>TrailingStop*pp) {
if (OrderStopLoss()>pAsk+(TrailingStop+TrailingStep-1)*pp || OrderStopLoss()==0) {
ModifyStopLoss(pAsk+TrailingStop*pp);
return;
}
}
}
}
void ModifyStopLoss(double ldStopLoss)
{
bool fm;
fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
if (fm && UseSound) PlaySound(NameFileSound);
}
Спасибо уважаемый gss за проявленный интерес к моей просьбе. Со всем уважением, но я не программист, именно по этой причине решил обратиться к гуру MQL4. Тот код который я выложил рабочий, его я собирал из разных советников, точнее из одного, взял только функцию Trailing Stop. Остальное придумал сам ( по поводу выставления отложенных ордеров). Прошу взглянуть вас и других гуру на выставленный мной код, и если вас не затруднит добавить к этому роботу ещё две функции.
1) Удаление отложенного ордера при срабатывании одного из двух.
2) Автоматическое увеличение лота ( на каждые 50$ 0.01 тоесть на 100$ будет уже 0.02)
добрый день кто нибудь может помочь в написании советника который бы открывал противоположный ордер тем же обьемом на каждый ордер при любом количестве ордеров . чтобы не торговал и не закрывал сам не чего.
т.е если есть разница в селах или баях всегда должен быть отложенник на разницу скажем на 13 пунктов . заранее спасибо за помощь .для мт 4
1.при открытии сделку в любую сторону выставляется противоположный ордер тем же объёмом.можно добавить трелинг стоп т.е если сделка в плюсе т.е ордер продвигается --- т.е случае обратного движения будет плюсовой замок.
2.в случае открытия любой части от замка должен выставляется ордер на разницу.
вроде все . еще раз ---советник недолжен закрывать сам не чегобез лишних кнопок на графике. без панели помощника.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Всем привет. кто может написать индикатор в мт4, чтоб активные торговые сессии (можно выставить время например с 10-18) отображались в виде японских свечей
ок
Добрый день!
Есть ли здесь умельцы, которые могли бы написать советник на основе информационного индикатора силы валют. Алгоритм следующий. Дожидаемся появление сильной и слабой валюты. В примере на скриншоте, это EUR и USD. Если разница существенная( должна задаваться в параметрах советника), то входим в позицию. В примере на скриншоте необходимо войти в sell, что и сделаю в понедельник. В советнике нужно задать параметр таймфрейма, с которого советник должен брать сигнал( разницу силы валют). Разница силы валют и является тем самым сигналом. Стоп лосс не нужен. Тейк профит нужен. Если цена пошла против нас, усредняемся. В советнике прописываем шаг усреднения, количество ордеров, магик, начальный размер лота, коэффициент увеличения лота. Торгую данным методом недавно, очень доволен. Для моего восприятия, это грааль.
Всем привет. кто может написать индикатор в мт4, чтоб активные торговые сессии (можно выставить время например с 10-18) отображались в виде японских свечей
Здравствуйте уважаемые гуру программирования, прошу у вас помощи закончить этого робота.
Я сам не программист, данного робота собрал сам из разных частей найденных на просторах интернета, но никак не могу прикрутить оставшиеся две функции которые хотелось бы видеть. Помогите пожалуйста. Я думаю что для вас это не будет так сложно как мне. Если вас не затруднит прикрутите пожалуйста, функцию которая закрывала бы отложенный ордер после того как один из двух отложенных сработал. И вторая функция должна сама увеличивать лот ордера ( "допустим" на каждые 50$ баланса 0,01 лот, по достижении 100$ что б робот сам поднял лот на 0,02). Заранее спасибо за помощь.
Посмотрите в базе e-News-Lucky$.mq4.
Посмотрите Фиксированно-пропорциональный метод выбора размера позиции (Р. Джонс) - MQL4 и MetaTrader 4 - Форум алго-трейдеров MQL4 - Страница 3 (mql5.com)
Посмотрите в базе e-News-Lucky$.mq4.
Посмотрите Фиксированно-пропорциональный метод выбора размера позиции (Р. Джонс) - MQL4 и MetaTrader 4 - Форум алго-трейдеров MQL4 - Страница 3 (mql5.com)
Всем привет, гляньте мою идею для индикатора, чтоб не спамить во всех постах кидаю ссылку
https://www.mql5.com/ru/forum/35071/page144#comment_22289427
т.е если есть разница в селах или баях всегда должен быть отложенник на разницу скажем на 13 пунктов . заранее спасибо за помощь .для мт 4
1.при открытии сделку в любую сторону выставляется противоположный ордер тем же объёмом.можно добавить трелинг стоп т.е если сделка в плюсе т.е ордер продвигается --- т.е случае обратного движения будет плюсовой замок.
2.в случае открытия любой части от замка должен выставляется ордер на разницу.
вроде все . еще раз --- советник недолжен закрывать сам не чего без лишних кнопок на графике. без панели помощника.