Ответ
 
Опции темы
Старый 22.09.2016, 17:31   #21 (permalink)
Активный участник
 
Аватар для ддеенниисс
 
Регистрация: 04.02.2012
Сообщений: 195
Репутация: 81
ддеенниисс
Сказал(а) спасибо: 0
Поблагодарили 80 раз(а) в 46 сообщениях
Поинты: 50
У меня всё работает и на демо и в тестере,скорее всего старый сов нужно удалить вообще с компа иначе если названия одинаковые то он не меняется по факту.И название не менять какое я написал пусть такое и будет есть проверка по имени,но вообще сов проблемный в нём понатыкано всяких проверок по интернету,названию брокера,глобальной переменной и ошибок серьёзных в жёстком режиме полно.
Этот у меня работает отлично первую сделку открывает в зависимости прошлых свечей ка в нём и записано.
Вложения:
Тип файла: ex4 Unimillion(long_kraus).ex4 (33.4 Кб, 3 просмотров)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Это не мы торгуем на рынке-это рынок торгует на нас.Советник "Fx Tomahawk"
ддеенниисс на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 22.09.2016, 17:48   #22 (permalink)
Интересующийся
 
Аватар для politehnik
 
Регистрация: 16.05.2012
Сообщений: 18
Репутация: 2
politehnik
Сказал(а) спасибо: 3
Поблагодарили 1 раз в 1 сообщении
Поинты: 10
Сообщение от ддеенниисс Посмотреть сообщение
У меня всё работает и на демо и в тестере,скорее всего старый сов нужно удалить вообще с компа иначе если названия одинаковые то он не меняется по факту.И название не менять какое я написал пусть такое и будет есть проверка по имени,но вообще сов проблемный в нём понатыкано всяких проверок по интернету,названию брокера,глобальной переменной и ошибок серьёзных в жёстком режиме полно.
Этот у меня работает отлично первую сделку открывает в зависимости прошлых свечей ка в нём и записано.
Спасибо, буду пробовать.
politehnik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 18.11.2016, 09:23   #23 (permalink)
Новичок форума
 
Аватар для warwick
 
Регистрация: 29.09.2010
Сообщений: 54
Репутация: 24
warwick
Сказал(а) спасибо: 3
Поблагодарили 23 раз(а) в 14 сообщениях
Поинты: 23
Поставьте пожалуйста время начала работы в этот сов
remon78eg.mq4
warwick вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.11.2016, 14:04   #24 (permalink)
Новичок форума
 
Аватар для warwick
 
Регистрация: 29.09.2010
Сообщений: 54
Репутация: 24
warwick
Сказал(а) спасибо: 3
Поблагодарили 23 раз(а) в 14 сообщениях
Поинты: 23
Сообщение от warwick Посмотреть сообщение
Поставьте пожалуйста время начала работы в этот сов
Вложение 259001
В общем я сам нагуглил код, вставил, все работает. Но есть проблема. Время работы совы внутри дня. Мне надо сделать так, чтобы начал работу в определенное время и больше не останавливался.
warwick вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.11.2016, 19:07   #25 (permalink)
Интересующийся
 
Аватар для FeNikS60
 
Регистрация: 10.01.2013
Сообщений: 9
Репутация: 4
FeNikS60
Сказал(а) спасибо: 8
Поблагодарили 3 раз(а) в 2 сообщениях
Поинты: 16

По умолчанию время старта


Один из вариантов:
Выставление времени при запуске:
extern string StartTime ="yyyy.mm.dd hh:mi";
При достижении времени разрешение работать дальше.
if(TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUT ES)<StartTime) return();
FeNikS60 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.11.2016, 14:29   #26 (permalink)
Новичок форума
 
Аватар для warwick
 
Регистрация: 29.09.2010
Сообщений: 54
Репутация: 24
warwick
Сказал(а) спасибо: 3
Поблагодарили 23 раз(а) в 14 сообщениях
Поинты: 23
Сообщение от FeNikS60 Посмотреть сообщение
Один из вариантов:
Выставление времени при запуске:
extern string StartTime ="yyyy.mm.dd hh:mi";
При достижении времени разрешение работать дальше.
if(TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUT ES)<StartTime) return();
Можно указать где должен стоять этот кусок кода, а то я не соображаю в программировании

Скрытый текст

input Trade TypeOrders = Only_SELL;
input double Lot = 0.00; // Lot
input double Risk = 1.01; // Risk percent if Lot=0;
input int MinStep = 400; // Step order
input int MinStepPlus = 0; // Add minimal step
input double MinProfit = 10.00; // Minimal Profit Close
input int Magic = 227;
input int Slippage = 30;


//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()

{
return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{

int b=0,s=0;
double
BuyProfit = 0,
SellProfit = 0,
BuyMin = 0,
SellMax = 0,
BuyMinLot = 0,
SellMaxLot = 0,
BuyLot = 0,
SellLot = 0,
BuyMax = 0,
SellMin = 0,
SellTicProfit = 0,
BuyTicProfit = 0;
int
BuyMaxTic = 0,
SellMinTic = 0;
for(int i=OrdersTotal()-1; i>=0; i--)
if(OrderSelect(i,SELECT_BY_POS))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY)
{
b++;
if(OrderOpenPrice()<BuyMin || BuyMin==0)
{
BuyMin=OrderOpenPrice();
BuyMinLot=OrderLots();
}
if(OrderOpenPrice()>BuyMax || BuyMin==0)
{
BuyMax=OrderOpenPrice();
BuyMaxTic=OrderTicket();
BuyTicProfit=OrderProfit();
}
if(OrderProfit()>0)BuyProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}
if(OrderType()==OP_SELL)
{
s++;
if(OrderOpenPrice()>SellMax || SellMax==0)
{
SellMax=OrderOpenPrice();
SellMaxLot=OrderLots();
}
if(OrderOpenPrice()<SellMin || SellMin==0)
{
SellMin=OrderOpenPrice();
SellMinTic=OrderTicket();
SellTicProfit=OrderProfit();
}
if(OrderProfit()>0)SellProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}



// Summ profit final
double ProfitBuy=BuyTicProfit+BuyProfit;
double ProfitSel=SellTicProfit+SellProfit;

double lot=NormalizeDouble(AccountBalance()*Risk/100/MarketInfo(Symbol(),MODE_MARGINREQUIRED),2);

if(b==0)
BuyLot=(Lot>0)?Lot:lot;
else
BuyLot=BuyMinLot+Lot;
if(s==0)
SellLot=(Lot>0)?Lot:lot;
else
SellLot=SellMaxLot+Lot;

double BuyDist = NormalizeDouble(MinStep*Point()+MinStepPlus*Point()*b,Digits());
double SellDist = NormalizeDouble(MinStep*Point()+MinStepPlus*Point()*s,Digits());


if(TypeOrders==Only_BUY || TypeOrders==Only_All)
if((b==0) || (b>0 && (BuyMin-Ask)>=BuyDist))
if(OrderSend(Symbol(),OP_BUY,NormalizeDouble(BuyLot,2),NormalizeDouble(Ask,Digits()),Slippage,0,0,"My order",Magic,0,clrGreen)<0)
Print(" Error open Buy N ",GetLastError());

if(TypeOrders==Only_SELL || TypeOrders==Only_All)
if((s==0) || (s>0 && (Bid-SellMax)>=SellDist))
if(OrderSend(Symbol(),OP_SELL,NormalizeDouble(SellLot,2),NormalizeDouble(Bid,Digits()),Slippage,0,0,"My order",Magic,0,clrGreen)<0)
Print(" Error open Sell N ",GetLastError());

if(ProfitBuy>=MinProfit && b>=2)
CloseAll(OP_BUY,BuyMaxTic);

if(ProfitSel>=MinProfit && s>=2)
CloseAll(OP_SELL,SellMinTic);
}
}
[свернуть]
warwick вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.11.2016, 16:46   #27 (permalink)
Интересующийся
 
Аватар для FeNikS60
 
Регистрация: 10.01.2013
Сообщений: 9
Репутация: 4
FeNikS60
Сказал(а) спасибо: 8
Поблагодарили 3 раз(а) в 2 сообщениях
Поинты: 16

По умолчанию Установка запуска по времени


Пожалуйста первую строчку можно немного изменить:
input string StartTime ="yyyy.mm.dd hh:mi";
и вставить в любом месте среди вводимых input-- параметров.
вторую строчку расположить сразу за void OnTick()
{
получится:

void OnTick()
{
if(TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUT ES)<StartTime) return();//нельзя
int b=0,s=0;
double
int b=0,s=0;
double.......
FeNikS60 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.11.2016, 17:38   #28 (permalink)
Новичок форума
 
Аватар для warwick
 
Регистрация: 29.09.2010
Сообщений: 54
Репутация: 24
warwick
Сказал(а) спасибо: 3
Поблагодарили 23 раз(а) в 14 сообщениях
Поинты: 23
Сообщение от FeNikS60 Посмотреть сообщение
Пожалуйста первую строчку можно немного изменить:
input string StartTime ="yyyy.mm.dd hh:mi";
и вставить в любом месте среди вводимых input-- параметров.
вторую строчку расположить сразу за void OnTick()
{
получится:

void OnTick()
{
if(TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUT ES)<StartTime) return();//нельзя
int b=0,s=0;
double
int b=0,s=0;
double.......
Вылезает 2 ошибки ')' - unexpected end of program ')' - unexpected end of program

Последний раз редактировалось warwick; 19.11.2016 в 17:46.
warwick вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.11.2016, 17:53   #29 (permalink)
Интересующийся
 
Аватар для FeNikS60
 
Регистрация: 10.01.2013
Сообщений: 9
Репутация: 4
FeNikS60
Сказал(а) спасибо: 8
Поблагодарили 3 раз(а) в 2 сообщениях
Поинты: 16

По умолчанию ошибка


Прошу извинить, в строчке при копировании из справочника появились неправильные буквы. должно быть:
if(TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUT ES)<StartTime) return();//нельзя
Обращаю внимание на правильность набора в строчке времени:
точки, двоеточие, пробелы должны быть как в первой строке
FeNikS60 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.11.2016, 17:55   #30 (permalink)
Интересующийся
 
Аватар для FeNikS60
 
Регистрация: 10.01.2013
Сообщений: 9
Репутация: 4
FeNikS60
Сказал(а) спасибо: 8
Поблагодарили 3 раз(а) в 2 сообщениях
Поинты: 16
почему то на сайте опять произошел разрыв. MINUTES пишется слитно
FeNikS60 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.11.2016, 18:20   #31 (permalink)
Новичок форума
 
Аватар для warwick
 
Регистрация: 29.09.2010
Сообщений: 54
Репутация: 24
warwick
Сказал(а) спасибо: 3
Поблагодарили 23 раз(а) в 14 сообщениях
Поинты: 23
Всё так же указывает на ошибки с кавычками вот тут

Скрытый текст

#property link "http://www.forexfactory.com/"
#property version "1.00"
#property description "Programmer Voldemar227"
#property strict
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
enum Trade
{
Only_BUY, // Only BUY
Only_SELL, // Only SELL
Only_All // BUY and SELL
};
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
enum ma
{
BUY_MA = 0,
SELL_MA = 1,
OFF = 2
};
input Trade TypeOrders = Only_SELL;
input double Lot = 0.00; // Lot
input double Risk = 1.01; // Risk percent if Lot=0;
input int MinStep = 400; // Step order
input int MinStepPlus = 0; // Add minimal step
input double MinProfit = 10.00; // Minimal Profit Close
input int Magic = 227;
input int Slippage = 30;
input string StartTime ="2016.10.06 10:00";

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()

{
return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{ Ошибка '{' - unbalanced parentheses
if(TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUTES)<StartTime) return();//нельзя
int b=0,s=0;
double
BuyProfit = 0,
SellProfit = 0,
BuyMin = 0,
SellMax = 0,
BuyMinLot = 0,
SellMaxLot = 0,
BuyLot = 0,
SellLot = 0,
BuyMax = 0,
SellMin = 0,
SellTicProfit = 0,
BuyTicProfit = 0;
int
BuyMaxTic = 0,
SellMinTic = 0;
for(int i=OrdersTotal()-1; i>=0; i--)
if(OrderSelect(i,SELECT_BY_POS))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY)
{
b++;
if(OrderOpenPrice()<BuyMin || BuyMin==0)
{
BuyMin=OrderOpenPrice();
BuyMinLot=OrderLots();
}
if(OrderOpenPrice()>BuyMax || BuyMin==0)
{
BuyMax=OrderOpenPrice();
BuyMaxTic=OrderTicket();
BuyTicProfit=OrderProfit();
}
if(OrderProfit()>0)BuyProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}
if(OrderType()==OP_SELL)
{
s++;
if(OrderOpenPrice()>SellMax || SellMax==0)
{
SellMax=OrderOpenPrice();
SellMaxLot=OrderLots();
}
if(OrderOpenPrice()<SellMin || SellMin==0)
{
SellMin=OrderOpenPrice();
SellMinTic=OrderTicket();
SellTicProfit=OrderProfit();
}
if(OrderProfit()>0)SellProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}



// Summ profit final
double ProfitBuy=BuyTicProfit+BuyProfit;
double ProfitSel=SellTicProfit+SellProfit;

double lot=NormalizeDouble(AccountBalance()*Risk/100/MarketInfo(Symbol(),MODE_MARGINREQUIRED),2);

if(b==0)
BuyLot=(Lot>0)?Lot:lot;
else
BuyLot=BuyMinLot+Lot;
if(s==0)
SellLot=(Lot>0)?Lot:lot;
else
SellLot=SellMaxLot+Lot;

double BuyDist = NormalizeDouble(MinStep*Point()+MinStepPlus*Point()*b,Digits());
double SellDist = NormalizeDouble(MinStep*Point()+MinStepPlus*Point()*s,Digits());


if(TypeOrders==Only_BUY || TypeOrders==Only_All)
if((b==0) || (b>0 && (BuyMin-Ask)>=BuyDist))
if(OrderSend(Symbol(),OP_BUY,NormalizeDouble(BuyLot,2),NormalizeDouble(Ask,Digits()),Slippage,0,0,"My order",Magic,0,clrGreen)<0)
Print(" Error open Buy N ",GetLastError());

if(TypeOrders==Only_SELL || TypeOrders==Only_All)
if((s==0) || (s>0 && (Bid-SellMax)>=SellDist))
if(OrderSend(Symbol(),OP_SELL,NormalizeDouble(SellLot,2),NormalizeDouble(Bid,Digits()),Slippage,0,0,"My order",Magic,0,clrGreen)<0)
Print(" Error open Sell N ",GetLastError());

if(ProfitBuy>=MinProfit && b>=2)
CloseAll(OP_BUY,BuyMaxTic);

if(ProfitSel>=MinProfit && s>=2)
CloseAll(OP_SELL,SellMinTic);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{

}
//+------------------------------------------------------------------+
void CloseAll(int aType,int ticket)
{
for(int i=OrdersTotal()-1; i>=0; i--)
if(OrderSelect(i,SELECT_BY_POS))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==Magic)
{
if(OrderType()==aType && OrderType()==OP_BUY)
if(OrderProfit()>0 || OrderTicket()==ticket)
if(!OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits()),Slippage,clrRed))
Print(" OrderClose OP_BUY Error N",GetLastError());

if(OrderType()==aType && OrderType()==OP_SELL)
if(OrderProfit()>0 || OrderTicket()==ticket)
if(!OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits()),Slippage,clrRed))
Print(" OrderClose OP_SELL Error N",GetLastError());

}
} Ошибка ')' - unbalanced parentheses


//+------------------------------------------------------------------+
[свернуть]
warwick вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.11.2016, 20:46   #32 (permalink)
Интересующийся
 
Аватар для FeNikS60
 
Регистрация: 10.01.2013
Сообщений: 9
Репутация: 4
FeNikS60
Сказал(а) спасибо: 8
Поблагодарили 3 раз(а) в 2 сообщениях
Поинты: 16
Проверил:
Ошибка появилась из-за отсутствия в функции void OnTick() последней закрывающей кавычки
CloseAll(OP_SELL,SellMinTic);
}
} -добавить.
Еще функция void не требует информации при выходе, поэтому команда
return() без скобок: return;
FeNikS60 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.11.2016, 22:38   #33 (permalink)
Новичок форума
 
Аватар для warwick
 
Регистрация: 29.09.2010
Сообщений: 54
Репутация: 24
warwick
Сказал(а) спасибо: 3
Поблагодарили 23 раз(а) в 14 сообщениях
Поинты: 23
Сообщение от FeNikS60 Посмотреть сообщение
Проверил:
Ошибка появилась из-за отсутствия в функции void OnTick() последней закрывающей кавычки
CloseAll(OP_SELL,SellMinTic);
}
} -добавить.
Еще функция void не требует информации при выходе, поэтому команда
return() без скобок: return;
Да, спасибо, помогло. Ошибок нету. Но теперь новая проблема возникла, советник вообще не открывает сделок.
warwick вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 19.11.2016, 23:14   #34 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 332
Репутация: 406
eevviill2 - eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 254
Поблагодарили 407 раз(а) в 135 сообщениях
Поинты: 46
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от Mansory Посмотреть сообщение
Подскажите, пожалуйста, что нужно добать в код советника что-бы можно было в настройках выставлять время работы. Спасибо
PHP код:
 extern string emp3 "//////////////Work time settings////////////////////";
extern bool Use_work_time false;
extern string start_time_1 "08:00";
extern string stop_time_1 "16:00";
extern string start_time_2 "";
extern string stop_time_2 "";
extern string start_time_3 "";
extern string stop_time_3 "";
............................................................................................
 
void OnTick()
 {
...
//time filter
 
if(Use_work_time && !work_time_f()) return;

 
//open order
...
 }
...........................................................................................
 
bool work_time_f() 
{
string time_current=TimeToString(TimeCurrent(),TIME_MINUTES);

  if(
      (
start_time_1+stop_time_1=="" || ((start_time_1<stop_time_1 && (time_current<start_time_1 || time_current>=stop_time_1)) || (start_time_1>stop_time_1 && (time_current<start_time_1 && time_current>=stop_time_1)))) 
   && (
start_time_2+stop_time_2=="" || ((start_time_2<stop_time_2 && (time_current<start_time_2 || time_current>=stop_time_2)) || (start_time_2>stop_time_2 && (time_current<start_time_2 && time_current>=stop_time_2))))  
   && (
start_time_3+stop_time_3=="" || ((start_time_3<stop_time_3 && (time_current<start_time_3 || time_current>=stop_time_3)) || (start_time_3>stop_time_3 && (time_current<start_time_3 && time_current>=stop_time_3))))  
    )  return(
false);


 
   return (
true);


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 19.11.2016, 23:27   #35 (permalink)
Почётный гражданин
 
Аватар для eevviill2
 
Регистрация: 13.08.2016
Адрес: Бандерівці
Сообщений: 332
Репутация: 406
eevviill2 - eevviill2 - eevviill2 - eevviill2 - eevviill2 -
Сказал(а) спасибо: 254
Поблагодарили 407 раз(а) в 135 сообщениях
Поинты: 46
Отправить сообщение для eevviill2 с помощью Skype™
Сообщение от warwick Посмотреть сообщение
В общем я сам нагуглил код, вставил, все работает. Но есть проблема. Время работы совы внутри дня. Мне надо сделать так, чтобы начал работу в определенное время и больше не останавливался.
PHP код:
extern datetime start_time_forever D'2017.01.01 00:00';
.........................................................................
void onTick()
{
...
if(
TimeCurrent()<start_time_forever) return;

//order open
...


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Героям слава!
eevviill2 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 20.11.2016, 08:20   #36 (permalink)
Новичок форума
 
Аватар для warwick
 
Регистрация: 29.09.2010
Сообщений: 54
Репутация: 24
warwick
Сказал(а) спасибо: 3
Поблагодарили 23 раз(а) в 14 сообщениях
Поинты: 23
Сообщение от eevviill2 Посмотреть сообщение
PHP код:
extern datetime start_time_forever D'2017.01.01 00:00';.........................................................................void onTick(){...if(TimeCurrent()<start_time_forever) return;//order open...} 
Тоже самое, ошибок нет, но перестал вообще открывать.
warwick вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 20.11.2016, 08:54   #37 (permalink)
Элитный участник
 
Аватар для Omukchaan
 
Регистрация: 18.01.2015
Адрес: Россия.
Сообщений: 2,350
Репутация: 1006
Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan
Сказал(а) спасибо: 398
Поблагодарили 1,018 раз(а) в 334 сообщениях
Поинты: 118
Отправить сообщение для Omukchaan с помощью Skype™
Счас выложу код.
Omukchaan вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 20.11.2016, 09:07   #38 (permalink)
Элитный участник
 
Аватар для Omukchaan
 
Регистрация: 18.01.2015
Адрес: Россия.
Сообщений: 2,350
Репутация: 1006
Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan
Сказал(а) спасибо: 398
Поблагодарили 1,018 раз(а) в 334 сообщениях
Поинты: 118
Отправить сообщение для Omukchaan с помощью Skype™
Код HTML:
//+------------------------------------------------------------------+
//|                                                    code work.mq4 |
//|                                                            Saasa |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Saasa"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern int start_trade=0;//час начала работы
extern int end_trade=24;//час окончания работы (плюс к начальному)

int tc, st, et;
bool work=false;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  //***********************
  if(tc>=et)
   { 
    int dow=0;
    if(start_trade+end_trade > 24) {dow=DayOfWeek();}
    int dt=iTime(NULL,PERIOD_D1,0);
    st=dt+start_trade*3600;
    et=dt+(start_trade+end_trade)*3600;
    if(dow==5) et+=172800;
   }
   
  if(tc>=st && tc<=et) work=true; 
  else work=false;
  //***********************
  
    if(work && ........ ) buy();

    if(work &&.........) sell();  
 
//+------------------------------------------------------------------+
Omukchaan вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 20.11.2016, 09:08   #39 (permalink)
Элитный участник
 
Аватар для Omukchaan
 
Регистрация: 18.01.2015
Адрес: Россия.
Сообщений: 2,350
Репутация: 1006
Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan Omukchaan
Сказал(а) спасибо: 398
Поблагодарили 1,018 раз(а) в 334 сообщениях
Поинты: 118
Отправить сообщение для Omukchaan с помощью Skype™
этот код можно добавить в советник.
Omukchaan вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 20.11.2016, 10:13   #40 (permalink)
Новичок форума
 
Аватар для warwick
 
Регистрация: 29.09.2010
Сообщений: 54
Репутация: 24
warwick
Сказал(а) спасибо: 3
Поблагодарили 23 раз(а) в 14 сообщениях
Поинты: 23
Сообщение от Omukchaan Посмотреть сообщение
этот код можно добавить в советник.
Можно здесь указать в каком месте вставить код? Я вставил, но время в советнике не работает, сразу начинает открывать

Скрытый текст

//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
int b=0,s=0;
double
BuyProfit = 0,
SellProfit = 0,
BuyMin = 0,
SellMax = 0,
BuyMinLot = 0,
SellMaxLot = 0,
BuyLot = 0,
SellLot = 0,
BuyMax = 0,
SellMin = 0,
SellTicProfit = 0,
BuyTicProfit = 0;
int
BuyMaxTic = 0,
SellMinTic = 0;

for(int i=OrdersTotal()-1; i>=0; i--)
if(OrderSelect(i,SELECT_BY_POS))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==Magic)
{
if(OrderType()==OP_BUY)
{
b++;
if(OrderOpenPrice()<BuyMin || BuyMin==0)
{
BuyMin=OrderOpenPrice();
BuyMinLot=OrderLots();
}
if(OrderOpenPrice()>BuyMax || BuyMin==0)
{
BuyMax=OrderOpenPrice();
BuyMaxTic=OrderTicket();
BuyTicProfit=OrderProfit();
}
if(OrderProfit()>0)BuyProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}
if(OrderType()==OP_SELL)
{
s++;
if(OrderOpenPrice()>SellMax || SellMax==0)
{
SellMax=OrderOpenPrice();
SellMaxLot=OrderLots();
}
if(OrderOpenPrice()<SellMin || SellMin==0)
{
SellMin=OrderOpenPrice();
SellMinTic=OrderTicket();
SellTicProfit=OrderProfit();
}
if(OrderProfit()>0)SellProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
// Summ profit final
double ProfitBuy=BuyTicProfit+BuyProfit;
double ProfitSel=SellTicProfit+SellProfit;

double lot=NormalizeDouble(AccountBalance()*Risk/100/MarketInfo(Symbol(),MODE_MARGINREQUIRED),2);

if(b==0)
BuyLot=(Lot>0)?Lot:lot;
else
BuyLot=BuyMinLot+Lot;
if(s==0)
SellLot=(Lot>0)?Lot:lot;
else
SellLot=SellMaxLot+Lot;

double BuyDist = NormalizeDouble(MinStep*Point()+MinStepPlus*Point()*b,Digits());
double SellDist = NormalizeDouble(MinStep*Point()+MinStepPlus*Point()*s,Digits());


if(TypeOrders==Only_BUY || TypeOrders==Only_All)
if((b==0) || (b>0 && (BuyMin-Ask)>=BuyDist))
if(OrderSend(Symbol(),OP_BUY,NormalizeDouble(BuyLot,2),NormalizeDouble(Ask,Digits()),Slippage,0,0,"My order",Magic,0,clrGreen)<0)
Print(" Error open Buy N ",GetLastError());

if(TypeOrders==Only_SELL || TypeOrders==Only_All)
if((s==0) || (s>0 && (Bid-SellMax)>=SellDist))
if(OrderSend(Symbol(),OP_SELL,NormalizeDouble(SellLot,2),NormalizeDouble(Bid,Digits()),Slippage,0,0,"My order",Magic,0,clrGreen)<0)
Print(" Error open Sell N ",GetLastError());

if(ProfitBuy>=MinProfit && b>=2)
CloseAll(OP_BUY,BuyMaxTic);

if(ProfitSel>=MinProfit && s>=2)
CloseAll(OP_SELL,SellMinTic);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
[свернуть]

Последний раз редактировалось warwick; 20.11.2016 в 10:18.
warwick вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Время работы с парой EUR/USD FXWizard Практика трейдинга 0 08.12.2010 14:10
Как раскрыть алгоритм работы советника, не имея советника FXWizard Практика трейдинга 6 27.08.2008 05:13


Текущее время: 22:13. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO