Как кодировать? - страница 334

 

Привет, ребята,

Я не могу нарисовать конверты на массиве.

Я могу рисовать полосы Боллинджера без проблем.

Я хочу нарисовать конверты на индикаторе CCI.

Я нарисовал полосы Боллинджера с помощью прикрепленного кода, и он работает,

единственной проблемой является рисование конвертов на индикаторе cci.

Пожалуйста, помогите.

Файлы:
cci_env.mq4  3 kb
 
luffy:
Привет, ребята,

Я не могу нарисовать конверты на массиве

Я могу рисовать полосы Боллинджера без проблем.

Я хочу рисовать конверты на индикаторе CCI.

Я нарисовал полосы Боллинджера с помощью прикрепленного кода, и он работает,

единственная проблема - рисование конвертов на индикаторе cci.

Пожалуйста, помогите.

luffy

Это невозможно сделать без кодирования конвертов для каждого значения индикатора, к которому вы хотите применить конверты.

 
mladen:
luffy Это невозможно сделать без кодирования конвертов для каждого значения индикатора, к которому вы хотите применить конверты.

Привет Младен

Я ценю вашу большую помощь, так как не могу программировать.

У меня проблема с приложенным Macd3, который обновляется только если я его редактирую и снова закрываю.

Было бы очень полезно, если бы он обновлялся при каждом закрытии бара. Надеюсь, вы сможете найти решение.

BTW это очень хороший индикатор в отношении получения разворотной точки рано!

Файлы:
macd_3m.ex4  17 kb
macd_3m.mq4  5 kb
 
wolfsch:
Привет Младен

Я ценю вашу огромную помощь, так как не умею программировать.

У меня проблема с прикрепленным Macd3, который обновляется только если я его редактирую и снова закрываю.

Было бы очень полезно, если бы он обновлялся при каждом закрытии бара. Надеюсь, вы сможете найти решение.

BTW это очень хороший индикатор в отношении получения разворотной точки рано!

wolfsch

Он работает нормально на моем терминале (тестировал его на 1-минутном графике и все было в порядке - я использую сборку 788).

 
wolfsch:
Привет Младен

Я ценю вашу огромную помощь, так как не умею программировать.

У меня проблема с прикрепленным Macd3, который обновляется только если я его редактирую и снова закрываю.

Было бы очень полезно, если бы он обновлялся при каждом закрытии бара. Надеюсь, вы сможете найти решение.

BTW это очень хороший индикатор в отношении раннего получения точки разворота!

У меня тоже работает

 
luffy:
Привет, ребята,

Я не могу нарисовать конверты на массиве

Я могу рисовать полосы Боллинджера без проблем.

Я хочу нарисовать конверты на индикаторе CCI.

Я нарисовал полосы Боллинджера с помощью прикрепленного кода, и он работает,

единственная проблема - рисование конвертов на индикаторе cci.

Пожалуйста, помогите.

luffy

Попробуйте сейчас: cci_env_1.mq4

Файлы:
cci_env_1.mq4  3 kb
cci_env.gif  71 kb
 

Здравствуйте, я пытаюсь настроить ea на автоматическое закрытие всех моих открытых сделок в определенное время. и хотел узнать, может ли кто-нибудь пролить свет на этот вопрос? спасибо.

С уважением,

Райан

 
tkuan77:
Здравствуйте, я пытаюсь настроить ea на автоматическое закрытие всех моих открытых сделок в определенное время. и хотел узнать, может ли кто-нибудь помочь мне пролить свет на этот вопрос? спасибо.

С уважением,

Райан

Райан

Проверьте вот это: https: //www.mql5.com/en/forum/177401/page2

Не беспокойтесь о двух предупреждениях компилятора при компиляции кода - они доброкачественные.

 

Привет mladen, я попытался ввести часть о закрытии сделки на основе времени и скомпилировать, это действительно дает мне предупреждение, как вы упомянули, однако, когда я запускаю код, он не закрывает сделку в указанное мной время.

Не очень понимаю, в чем здесь может быть ошибка. Надеюсь, вы сможете просветить меня, где я могу ошибаться.

С уважением,

Райан

//+------------------------------------------------------------------+

//| Forex TSD - форекс форум |

//+------------------------------------------------------------------+

#property copyright "R Creation"

#property link "https://www.forex-tsd.com"

//---- входные параметры

extern double TakeProfit = 200.0;

extern double Lots = 0.1;

extern double StopLoss = 200.0;

extern int PreferredHour_1st = 5;

extern int PreferredMinute_1st = 30;

int magicNo_1st = 530;

extern bool UseCurrSymbol = False; // не очень понимаю, для чего это нужно.....

//+------------------------------------------------------------------+

//| функция инициализации эксперта |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| функция деинициализации эксперта | |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| функция запуска эксперта |

//+------------------------------------------------------------------+

дата-время newbar;

double pBid, pAsk;

int start()

{

if(newbar==Time[0])return(0);

else newbar=Time[0];

int ticket, total;

if(Bars<100)

{

Print("баров меньше 100");

return(0);

}

if(TakeProfit<10)

{

Print("TakeProfit меньше 10");

return(0); // проверяем TakeProfit

}

double Fast_MA, Slow_MA;

Fast_MA = iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0);

Slow_MA = iMA(NULL,0,30,0,MODE_EMA,PRICE_CLOSE,0);

total = OrdersTotal(); // проверка общего количества сделок, открытых в настоящее время

if(total < 1)

{

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA > Slow_MA)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,

"Мой советник",magicNo_1st,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Открыт ордер BUY : ",OrderOpenPrice());

}

else Print("Ошибка при открытии ордера BUY : ",GetLastError());

return(0);

}

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA < Slow_MA)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,

"Мой советник",magicNo_1st,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Открыт ордер SELL : ",OrderOpenPrice());

}

else Print("Ошибка при открытии ордера SELL : ",GetLastError());

return(0);

}

return(0);

}

if(total > 1) //для закрытия ордеров по времени... пока не решено.

{

if (Hour()==7 && Minute()==0 && Seconds()==0)

{

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID);

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);

}

if (OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red);

}

}

}

}

}

}

return(0);

}

//+------------------------------------------------------------------+

 
tkuan77:
Привет mladen, я попытался ввести часть о закрытии сделки на основе времени и компиляции, это действительно дает мне предупреждение, как вы упомянули, однако, когда я запускаю код, он не закрывает сделку в указанное мной время.

Не очень понимаю, в чем здесь может быть ошибка. Надеюсь, вы сможете просветить меня, где я могу ошибаться.

С уважением,

Райан

//+------------------------------------------------------------------+

//| Forex TSD - форекс форум |

//+------------------------------------------------------------------+

#property copyright "R Creation"

#property link "https://www.forex-tsd.com"

//---- входные параметры

extern double TakeProfit = 200.0;

extern double Lots = 0.1;

extern double StopLoss = 200.0;

extern int PreferredHour_1st = 5;

extern int PreferredMinute_1st = 30;

int magicNo_1st = 530;

extern bool UseCurrSymbol = False; // не очень понимаю, для чего это нужно.....

//+------------------------------------------------------------------+

//| функция инициализации эксперта |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| функция деинициализации эксперта | |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| функция запуска эксперта |

//+------------------------------------------------------------------+

дата-время newbar;

double pBid, pAsk;

int start()

{

if(newbar==Time[0])return(0);

else newbar=Time[0];

int ticket, total;

if(Bars<100)

{

Print("баров меньше 100");

return(0);

}

if(TakeProfit<10)

{

Print("TakeProfit меньше 10");

return(0); // проверяем TakeProfit

}

double Fast_MA, Slow_MA;

Fast_MA = iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0);

Slow_MA = iMA(NULL,0,30,0,MODE_EMA,PRICE_CLOSE,0);

total = OrdersTotal(); // проверка общего количества сделок, открытых в настоящее время

if(total < 1)

{

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA > Slow_MA)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,

"Мой советник",magicNo_1st,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Открыт ордер BUY : ",OrderOpenPrice());

}

else Print("Ошибка при открытии ордера BUY : ",GetLastError());

return(0);

}

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA < Slow_MA)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,

"Мой советник",magicNo_1st,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Открыт ордер SELL : ",OrderOpenPrice());

}

else Print("Ошибка при открытии ордера SELL : ",GetLastError());

return(0);

}

return(0);

}

if(total > 1) //для закрытия ордеров по времени... пока не решено.

{

if (Hour()==7 && Minute()==0 && Seconds()==0)

{

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID);

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);

}

if (OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red);

}

}

}

}

}

}

return(0);

}

//+------------------------------------------------------------------+

Эта часть

if(newbar==Time[0])return(0);

else newbar=Time[0];

int ticket, total;

if(Bars<100)

{

Print("баров меньше 100");

return(0);

}

if(TakeProfit<10)

{

Print("TakeProfit меньше 10");

return(0); // проверяем TakeProfit

}

Мешает ли ea закрывать ордера в определенное время, если это не первый тик нового бара и если прибыль не > 10 пунктов?

Причина обращения: