0
Спасибо большое!*hi* 
avatar

sekretometrT

  • 17 июня 2022, 05:07
0
У меня нормально работает. Что у Вас подвешивает не понимаю!!!
Единственная причина может быть, это параметр HistoryBar. Там по умолчанию стоит 2000 баров. Выставите значение 200 и терминал перестанет виснуть. У меня одновременно 26 валютных пар работают и нормально!!!



Но на нет и суда нет!
avatar

sekretometrT

  • 16 июня 2022, 05:12
0
Сет выложи! Или зажал?
avatar

sekretometrT

  • 15 июня 2022, 13:53
0
Поняла. Но он и писался для опционов, так как для форекс он совсем не пригоден!
avatar

sekretometrT

  • 27 апреля 2022, 12:18
0
Он открывает позиции с увеличением лота, но только при торговле на форекс. На опционах при закрытии лота в минус, он не открывает сразу следующий лот с увеличением.



Не хочет на опционах открывать. Еще на двух валютах тоже самое!!!
Или он будет открывать следующий лот с увеличением, только при получении сигнала советником?
avatar

sekretometrT

  • 27 апреля 2022, 07:58
0
Спасибо! Получила. А значение ENUM_APPLIED_PRICE RSIPrice_2 = 0;, это включить на графике (0) или выключить (1). Я правильно поняла?
avatar

sekretometrT

  • 27 апреля 2022, 03:58
0
Если можно сделать так — с увеличением по коэффициенту, при закрытии в минус на опционах.
avatar

sekretometrT

  • 26 апреля 2022, 16:38
0
Он еще не открывает лоты с увеличением по коэффициенту, при закрытии в минус на опционах.
avatar

sekretometrT

  • 26 апреля 2022, 16:20
0
Отправила с рабочей почты мужа.
avatar

sekretometrT

  • 26 апреля 2022, 15:24
0
Большое спасибо! Буду пробовать!
avatar

sekretometrT

  • 22 апреля 2022, 17:25
0
extern string Expiration =
<code>"15"</code>
;

Это исправила.
avatar

sekretometrT

  • 22 апреля 2022, 08:18
0
А как убрать ошибки?
avatar

sekretometrT

  • 22 апреля 2022, 08:17
0
А я вот попробовала собрать советник из написанных здесь. Для опционов на 3-х RSI, но вышли ошибки и где не могу разобраться, может кто поможет:

//+------------------------------------------------------------------+
//| RSI_3.mq4 |
//| Copyright © 2016, Татьяна |
//| sekrenovtnr@yandex.ru |
//+------------------------------------------------------------------+
#property copyright «Copyright © 2022, Татьяна»
#property link «sekrenovtnr@yandex.ru»
#property strict
#property description «советник по 3-м RSI»
#property description «sell при пересечение сверху вниз 70 и на buy снизу вверх 30»
#property description «стопы и тейки можно выстовить в настройках советника»
//--------------------------------------------------------------------
extern int period_RSI0 = 21,
period_RSI2 = 33,
period_RSI4 = 44,
StopLoss = 100,
TakeProfit = 200,
slippage = 10,
buy_level0 = 30,
sell_level0 = 70,
buy_level2 = 30,
sell_level2 = 70,
buy_level4 = 30,
sell_level4 = 70,
Magic = 777;
extern int Slip = 30; // реквот
extern string Expiration = «15»;
extern double Lots = 0.1; // лот
extern double Lot1 = 0.2; // лот 1
extern double Lot2 = 0.3; // лот 2
extern double Lot3 = 0.4; // лот 3
extern double Lot4 = 0.5; // лот 4
extern double Lot5 = 0.6; // лот 5
extern double Lot6 = 0.7; // лот 6
extern double Lot7 = 0.8; // лот 7
extern double Lot8 = 0.9; // лот 8
extern double Lot9 = 1.0; // лот 9
extern double Lot10 = 1.1; // лот 10
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
Comment("");
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
{
int r=0;
color clr=Green;
double sl=0,tp=0;

if(type==1 || type==3 || type==5)
{
clr=Red;
if(StopLoss>0)
sl=NormalizeDouble(price+StopLoss*_Point,Digits);
if(TakeProfit>0)
tp=NormalizeDouble(price-TakeProfit*_Point,Digits);
}

if(type==0 || type==2 || type==4)
{
clr=Blue;
if(StopLoss>0)
sl=NormalizeDouble(price-StopLoss*_Point,Digits);
if(TakeProfit>0)
tp=NormalizeDouble(price+TakeProfit*_Point,Digits);
}

r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,Expiration,Magic,0,clr);
return;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int CountTrades()
{
int count=0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()<2)
count++;
}
}
}
return(count);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int Loss()
{
int loss=0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()==0)
{
if(OrderClosePrice()-OrderOpenPrice()<0)
loss++;
if(OrderClosePrice()-OrderOpenPrice()>0)
break;
}
if(OrderType()==1)
{
if(OrderClosePrice()-OrderOpenPrice()>0)
loss++;
if(OrderClosePrice()-OrderOpenPrice()<0)
break;
}
}
}
}
return(loss);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double Lot()
{
double lot=Lots;

switch(Loss())
{
case 0:
lot=Lots;
break;
case 1:
lot=Lot1;
break;
case 2:
lot=Lot2;
break;
case 3:
lot=Lot3;
break;
case 4:
lot=Lot4;
break;
case 5:
lot=Lot5;
break;
case 6:
lot=Lot6;
break;
case 7:
lot=Lot7;
break;
case 8:
lot=Lot8;
break;
case 9:
lot=Lot9;
break;
case 10:
lot=Lot10;
break;
default:
lot=Lots;
}
return(lot);
}
//--------------------------------------------------------------------
void OnTick()
{
for (int i=0; i<OrdersTotal(); i++)
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber()) return;
double RSI0 = iRSI(NULL,0,period_RSI0,PRICE_OPEN,0);
double RSI1 = iRSI(NULL,0,period_RSI0,PRICE_OPEN,1);
double RSI2 = iRSI(NULL,0,period_RSI2,PRICE_OPEN,0);
double RSI3 = iRSI(NULL,0,period_RSI2,PRICE_OPEN,1);
double RSI4 = iRSI(NULL,0,period_RSI4,PRICE_OPEN,0);
double RSI5 = iRSI(NULL,0,period_RSI4,PRICE_OPEN,1);
double SL=0,TP=0;
if (RSI0 > buy_level && RSI1 < buy_level)
if (RSI2 > buy_level && RSI3 < buy_level)
if (RSI4 > buy_level && RSI5 < buy_level)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);
if (stoploss!=0) SL = NormalizeDouble(Ask — stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
}
if (RSI0 < sell_level && RSI1 > sell_level)
if (RSI2 > sell_level && RSI3 < buy_level)
if (RSI4 > sell_level && RSI5 < buy_level)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid — takeprofit*Point,Digits);
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss* Point,Digits);
if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
}

//--------------------------------------------------------------------

'RSI_3.mq4' RSI_3.mq4 1 1
'}' — unexpected end of program cm_RSI.mq4 205 4
'{' — unbalanced parentheses cm_RSI.mq4 178 1
2 errors, 0 warnings 3 1
avatar

sekretometrT

  • 22 апреля 2022, 07:57
0
Да, все таки, когда ставишь общий тейкпрофит extern int Delta = 700; // цена закрытия, то не сработавшие ордера остаются на графике и их приходится удалять вручную При продаже остаются sell limit, ну а при покупке bay limit, не сработавшие.
avatar

sekretometrT

  • 9 февраля 2022, 14:18
0
Проверила на демке, все работает, все удаляется!
avatar

sekretometrT

  • 8 февраля 2022, 16:49
0
Это сообщение от Заказчика, прошу Вас обратить внимание!

Выявился баг советника. Лимитные активированные ордера закрылись по своей единой цене закрытия, о стоповые еще в работе. По условиям алгоритма, все ордера должны закрываться по единой цене закрытия. Нельзя ли поправить.



Там есть еще один ордер, открытый мной вручную, на него не обращаем внимания.
avatar

sekretometrT

  • 7 февраля 2022, 05:04
0
Но совершенно не то, что в задании!
avatar

sekretometrT

  • 6 февраля 2022, 17:23
Загрузка...