и к сообщению можно прикреплять файлы. Если так сделаете, то вам скорее помогут
ммммммммммммммммммммммммммммммм
Не у всех мониторы в четверть комнаты!!!
Начал создавать советник на статистике-открывает поз.против определенного бара в определенное время по определенной паре.Попробовал проверить этот полуфабрикат на тестере МТ4-не открывает ни одной сделки.Советник должен работать вместе с индикатором PeriodOfTime.Позтому привожу код как советника так и индикатора.С теми кто поможет устранить неполадки-поделюсь конечным результатом.Я сам не программер,просто стратегия есть .
А ты попробуй поставить лот 1 или 0.1
У меня все работает, но это на М15. На М30 тоже работает. На часовиках уже нет.
Открываются только BUY позиции.
lFlagBuyOpen = (diCustom0>0 && diOpen1-diClose2>=0.0003); lFlagSellOpen = False; lFlagBuyClose = False; lFlagSellClose = False;
А ты попробуй поставить лот 1 или 0.1
У меня все работает, но это на М15. На М30 тоже работает. На часовиках уже нет.
Открываются только BUY позиции.
Спасибо всем кто откликнулся,особенно Винину и Привалу.Их замечания и предложения учту.Тема не закрыта.это только начало.Винину-сделки вверх-все правильно,т.к.это полкуфабрикат.Цель-сделать вверх и вниз отложенными ордерами.Мое предложение в силе.
И где же тот, кто вызвал тему из небытия?
Больше года уже прошло.
Индикатор надо было бы выкинуть. Саму стратегию туда же.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Начал создавать советник на статистике-открывает поз.против определенного бара в определенное время по определенной паре.Попробовал проверить этот полуфабрикат на тестере МТ4-не открывает ни одной сделки.Советник должен работать вместе с индикатором PeriodOfTime.Позтому привожу код как советника так и индикатора.С теми кто поможет устранить неполадки-поделюсь конечным результатом.Я сам не программер,просто стратегия есть .
//+------------------------------------------------------------------+
//| PeriodOfTime.mq4 |
//| Copyright c 2006, Gordago Software Ltd. |
//| http://www.gordago.com |
//+------------------------------------------------------------------+
#property copyright "Copyright c 2006, Gordago Software Ltd."
#property link "http://www.gordago.com"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Magenta
//---- input parameters
extern int prmHour=12;
extern int prmMinute=15;
extern int prmPeriod=3;
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,251);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int pos=Bars-counted_bars;
while(pos>=0){
int iYear = TimeYear(Time[pos]);
int iMonth = TimeMonth(Time[pos]);
int iDay = TimeDay(Time[pos]);
int iHour = TimeHour(prmHour);
int iMinute = TimeMinute(prmMinute);
string strdtm = iYear + "." + iMonth + "." + iDay + " " + prmHour + ":" + prmMinute;
datetime dtm = StrToTime(strdtm);
datetime dtmto = dtm + prmPeriod * 60 - 1;
if (Time[pos] >= dtm && Time[pos] <= dtmto)
ExtMapBuffer1[pos] = High[pos]+Point*2;
else
ExtMapBuffer1[pos] = 0.0;
pos--;
}
return(0);
}
//+------------------------------------------------------------------+
ьььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььь
ььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььь
А теперь непослушный эксперт:ЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬ
ммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммм
тттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттттт
//+------------------------------------------------------------------+
//| Copyright 2005, Gordago Software Corp. |
//| http://www.gordago.com/ |
//| version 2.0 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2005, Gordago Software Corp."
#property link "http://www.gordago.com"
#define MIN_STOPLOSS_POINT 10
#define MIN_TAKEPROFIT_POINT 10
#define MAGIC 17992
extern string sNameExpert = "Generate from Gordago";
extern int nAccount =0;
extern double dBuyStopLossPoint = 20;
extern double dSellStopLossPoint = 0;
extern double dBuyTakeProfitPoint = 50;
extern double dSellTakeProfitPoint = 0;
extern double dBuyTrailingStopPoint = 0;
extern double dSellTrailingStopPoint = 0;
extern double dLots = 0.01;
extern int nSlippage = 5;
extern bool lFlagUseHourTrade = False;
extern int nFromHourTrade = 0;
extern int nToHourTrade = 23;
extern bool lFlagUseSound = True;
extern string sSoundFileName = "alert.wav";
extern color colorOpenBuy = Blue;
extern color colorCloseBuy = Aqua;
extern color colorOpenSell = Red;
extern color colorCloseSell = Aqua;
void deinit() {
Comment("");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start(){
if (lFlagUseHourTrade){
if (!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade)) {
Comment("Time for trade has not come else!");
return(0);
}
}
if(Bars < 100){
Print("bars less than 100");
return(0);
}
if (nAccount > 0 && nAccount != AccountNumber()){
Comment("Trade on account :"+AccountNumber()+" FORBIDDEN!");
return(0);
}
if((dBuyStopLossPoint > 0 && dBuyStopLossPoint < MIN_STOPLOSS_POINT) ||
(dSellStopLossPoint > 0 && dSellStopLossPoint < MIN_STOPLOSS_POINT)){
Print("StopLoss less than " + MIN_STOPLOSS_POINT);
return(0);
}
if((dBuyTakeProfitPoint > 0 && dBuyTakeProfitPoint < MIN_TAKEPROFIT_POINT) ||
(dSellTakeProfitPoint > 0 && dSellTakeProfitPoint < MIN_TAKEPROFIT_POINT)){
Print("TakeProfit less than " + MIN_TAKEPROFIT_POINT);
return(0);
}
double diCustom0=iCustom(NULL, 15, "PeriodOfTime", 8, 30, 2, 0, 0);
double diOpen1=iOpen(NULL,15,1);
double diClose2=iClose(NULL,15,1);
if(AccountFreeMargin() < (1000*dLots)){
Print("We have no money. Free Margin = " + AccountFreeMargin());
return(0);
}
bool lFlagBuyOpen = false, lFlagSellOpen = false, lFlagBuyClose = false, lFlagSellClose = false;
lFlagBuyOpen = (diCustom0>0 && diOpen1-diClose2>=0.0003);
lFlagSellOpen = False;
lFlagBuyClose = False;
lFlagSellClose = False;
if (!ExistPositions()){
if (lFlagBuyOpen){
OpenBuy();
return(0);
}
if (lFlagSellOpen){
OpenSell();
return(0);
}
}
if (ExistPositions()){
if(OrderType()==OP_BUY){
if (lFlagBuyClose){
bool flagCloseBuy = OrderClose(OrderTicket(), OrderLots(), Bid, nSlippage, colorCloseBuy);
if (flagCloseBuy && lFlagUseSound)
PlaySound(sSoundFileName);
return(0);
}
}
if(OrderType()==OP_SELL){
if (lFlagSellClose){
bool flagCloseSell = OrderClose(OrderTicket(), OrderLots(), Ask, nSlippage, colorCloseSell);
if (flagCloseSell && lFlagUseSound)
PlaySound(sSoundFileName);
return(0);
}
}
}
if (dBuyTrailingStopPoint > 0 || dSellTrailingStopPoint > 0){
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
bool lMagic = true;
if (MAGIC > 0 && OrderMagicNumber() != MAGIC)
lMagic = false;
if (OrderSymbol()==Symbol() && lMagic) {
if (OrderType()==OP_BUY && dBuyTrailingStopPoint > 0) {
if (Bid-OrderOpenPrice() > dBuyTrailingStopPoint*Point) {
if (OrderStopLoss()<Bid-dBuyTrailingStopPoint*Point)
ModifyStopLoss(Bid-dBuyTrailingStopPoint*Point);
}
}
if (OrderType()==OP_SELL) {
if (OrderOpenPrice()-Ask>dSellTrailingStopPoint*Point) {
if (OrderStopLoss()>Ask+dSellTrailingStopPoint*Point || OrderStopLoss()==0)
ModifyStopLoss(Ask+dSellTrailingStopPoint*Point);
}
}
}
}
}
}
return (0);
}
bool ExistPositions() {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
bool lMagic = true;
if (MAGIC > 0 && OrderMagicNumber() != MAGIC)
lMagic = false;
if (OrderSymbol()==Symbol() && lMagic) {
return(True);
}
}
}
return(false);
}
void ModifyStopLoss(double ldStopLoss) {
bool lFlagModify = OrderModify(OrderTicket(), OrderOpenPrice(), ldStopLoss, OrderTakeProfit(), 0, CLR_NONE);
if (lFlagModify && lFlagUseSound)
PlaySound(sSoundFileName);
}
void OpenBuy() {
double dStopLoss = 0, dTakeProfit = 0;
if (dBuyStopLossPoint > 0)
dStopLoss = Bid-dBuyStopLossPoint*Point;
if (dBuyTakeProfitPoint > 0)
dTakeProfit = Bid + dBuyTakeProfitPoint * Point;
int numorder = OrderSend(Symbol(), OP_BUY, dLots, Ask, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenBuy);
if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}
void OpenSell() {
double dStopLoss = 0, dTakeProfit = 0;
if (dSellStopLossPoint > 0)
dStopLoss = Ask+dSellStopLossPoint*Point;
if (dSellTakeProfitPoint > 0)
dTakeProfit = Ask-dSellTakeProfitPoint*Point;
int numorder = OrderSend(Symbol(),OP_SELL, dLots, Bid, nSlippage, dStopLoss, dTakeProfit, sNameExpert, MAGIC, 0, colorOpenSell);
if (numorder > -1 && lFlagUseSound)
PlaySound(sSoundFileName);
}
ТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТТ
Скомпилировано и то и другое.
сссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссс
ммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммммм
Спасибо тем кто откликнется.