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

 

Кикоуси,

Вы можете сами протестировать лучшие координаты. FerruFX и CJA использовали лучшие решения, когда угловые позиции были заданы по умолчанию, а пользователь вводил данные для размещения объектов. Вы также можете посмотреть на OBJPROP_CORNER.

Также, пожалуйста, постарайтесь не публиковать один и тот же запрос, как вы уже делали. Пользователи видят ваши сообщения, и если кто-то может вам помочь, он это сделает.

Спасибо

Edit: Используя свойство угла 0 - верхний левый, 1 - верхний правый, 2 - нижний левый, 3 - нижний правый. Считается 0.

 

Помогите с отладкой моего советника

Здравствуйте. Извините, если это не тот форум для сообщения, и пожалуйста, исправьте, если это так.

Я запрограммировал свой собственный советник и имею некоторые проблемы с заполнением ордеров и ордерами стоп-лосс. Может ли кто-нибудь помочь? Я могу поделиться советником.

Спасибо

 

codobro,

Большое спасибо за ваш любезный ответ.

Впредь я больше не буду задавать один и тот же вопрос.

Я ценю ваше предложение.

В связи с этим, я понимаю, что верхняя левая позиция - это (0,0), тогда какова индикация нижней правой в это время?

Например, могу ли я использовать (250,350) для индикации нижнего правого угла, когда верхний левый угол находится в положении (0,0)?

Заранее благодарю Вас за понимание вышеизложенного.

 

График индикатора не отображает все данные

Здравствуйте

Я достаточно хорошо разбираюсь в программировании на C, но начинаю работать с MQL4.

Я только что сделал свой первый индикатор, и он частично отображает массив в отдельном окне.

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

Если прокрутить вправо, то те же временные периоды не отображаются.

В остальном я не вижу никакой закономерности.

Кроме того, если я перехожу от 1-минутного периода, где я действительно вижу некоторые данные, к 5-минутному, то вообще ничего не показывается.

Почему не отображаются все данные? Что я мог пропустить?

 

Хороший советник - НУЖНА ПОМОЩЬ

Хай,

Есть ли кто-нибудь на этом замечательном форуме, кто мог бы модифицировать этот советник без стоп-лосса.

Спасибо

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

extern int INCREMENT=35;

extern double LOTS=0.1;

extern int LEVELS=3;

extern double MAX_LOTS=99;

extern int MAGIC=1803;

extern bool CONTINUE=true;

extern bool MONEY_MANAGEMENT=false;

extern int RISK_RATIO=2;

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

bool UseProfitTarget=false;

bool UsePartialProfitTarget=false;

int Target_Increment = 50;

int First_Target = 20;

bool UseEntryTime=false;

int EntryTime=0;

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

bool Enter=true;

int nextTP;

int init()

{

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

nextTP = First_Target;

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

return(0);

}

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

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

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

int deinit()

{

return(0);

}

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

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

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

int start()

{

int ticket, cpt, profit, total=0, BuyGoalProfit, SellGoalProfit, PipsLot;

double ProfitTarget=INCREMENT*2, BuyGoal=0, SellGoal=0, spread=(Ask-Bid)/Point, InitialPrice=0;

//----

if(INCREMENT<MarketInfo(Symbol(),MODE_STOPLEVEL)+spread) INCREMENT=1+MarketInfo(Symbol(),MODE_STOPLEVEL)+spread;

if(MONEY_MANAGEMENT) LOTS=NormalizeDouble(AccountBalance()*AccountLeverage()/1000000*RISK_RATIO,0)*MarketInfo(Symbol(),MODE_MINLOT);

if(LOTS<MarketInfo(Symbol(),MODE_MINLOT))

{

Комментарий("Недостаточно свободной маржи для начала");

return(0);

}

for(cpt=1;cpt<LEVELS;cpt++) PipsLot+=cpt*INCREMENT;

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

if(OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol())

{

total++;

if(!InitialPrice) InitialPrice=StrToDouble(OrderComment());

if(UsePartialProfitTarget && UseProfitTarget && OrderType()<2)

{

double val=getPipValue(OrderOpenPrice(),OrderType());

takeProfit(val,OrderTicket());

}

}

}

if(total<1 && Enter && (!UseEntryTime || (UseEntryTime && Hour()==EntryTime)))

{

if(AccountFreeMargin()<(100*LOTS))

{

Print("Недостаточно свободной маржи для начала работы");

return(0);

}

// - Открытый чек - Начало цикла

InitialPrice=Ask;

SellGoal=InitialPrice-(LEVELS+1)*INCREMENT*Point;

BuyGoal=InitialPrice+(LEVELS+1)*INCREMENT*Point;

for(cpt=1;cpt<=LEVELS;cpt++)

{

OrderSend(Symbol(),OP_BUYSTOP,LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

OrderSend(Symbol(),OP_SELLSTOP,LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

} // начальная настройка выполнена - все каналы настроены

else // У нас есть открытые ордера

{

BuyGoal=InitialPrice+INCREMENT*(LEVELS+1)*Point;

SellGoal=InitialPrice-INCREMENT*(LEVELS+1)*Point;

total=OrdersHistoryTotal();

for(cpt=0;cpt<total;cpt++)

{

OrderSelect(cpt,SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && StrToDouble(OrderComment())==InitialPrice){EndSession();return(0);}

}

if(UseProfitTarget && CheckProfits(LOTS,OP_SELL,true,InitialPrice)>ProfitTarget) {EndSession();return(0);}

BuyGoalProfit=CheckProfits(LOTS,OP_BUY,false,InitialPrice);

SellGoalProfit=CheckProfits(LOTS,OP_SELL,false,InitialPrice);

if(BuyGoalProfit<ProfitTarget)

// - Покупка лотов

{

for(cpt=LEVELS;cpt>=1 && BuyGoalProfit<ProfitTarget;cpt--)

{

if(Ask<=(InitialPrice+(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))

{

ticket=OrderSend(Symbol(),OP_BUYSTOP,cpt*LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

if(ticket>0) BuyGoalProfit+=LOTS*(BuyGoal-InitialPrice-cpt*INCREMENT*Point)/Point;

}

}

if(SellGoalProfit<ProfitTarget)

// - Увеличиваем лоты продажи

{

for(cpt=LEVELS;cpt>=1 && SellGoalProfit<ProfitTarget;cpt--)

{

if(Bid>=(InitialPrice-(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))

{

ticket=OrderSend(Symbol(),OP_SELLSTOP,cpt*LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

if(ticket>0) SellGoalProfit+=LOTS*(InitialPrice-cpt*INCREMENT*Point-SellGoal-spread*Point)/Point;

}

}

}

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

Comment("mGRID EXPERT ADVISOR ver 2.0\n",

"FX Acc Server:",AccountServer(),"\n",

"Date: ",Month(),"-",Day(),"-",Year(), "Server Time: ",Hour(),":",Minute(),":",Seconds(),"\n",

"Минимальный размер лота: ",MarketInfo(Symbol(),MODE_MINLOT),"\n",

"Баланс счета: $",AccountBalance(),"\n",

"Символ: ",Symbol(),"\n",

"Цена: ",NormalizeDouble(Bid,4),"\n",

"Pip Spread: ",MarketInfo("EURUSD",MODE_SPREAD),"\n",

"Increment=" + INCREMENT,"\n",

"Lots: ",LOTS,"\n",

"Уровни: " + LEVELS,"\n");

return(0);

}

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

int CheckProfits(double LOTS, int Goal, bool Current, double InitialPrice)

{

int profit=0, cpt;

if(Current)//возвращает текущую прибыль

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

if(OrderType()==OP_BUY) profit+=(Bid-OrderOpenPrice())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-Ask)/Point*OrderLots()/LOTS;

}

}

return(profit);

}

else

{

if(Goal==OP_BUY)

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

if(OrderType()==OP_BUY) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELL) profit-=(OrderStopLoss()-OrderOpenPrice())/Point*OrderLots()/LOTS;

if(OrderType()==OP_BUYSTOP) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;

}

}

return(profit);

}

else

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

if(OrderType()==OP_BUY) profit-=(OrderOpenPrice()-OrderStopLoss())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELLSTOP) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;

}

}

return(profit);

}

}

}

bool EndSession()

{

int cpt, total=OrdersTotal();

for(cpt=0;cpt<total;cpt++)

{

Sleep(3000);

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderType()>1) OrderDelete(OrderTicket());

else if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3);

else if(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3);

}

if(!CONTINUE) Enter=false;

return(true);

}

double getPipValue(double ord,int dir)

{

double val;

RefreshRates();

if(dir == 1) val=(NormalizeDouble(ord,Digits) - NormalizeDouble(Ask,Digits));

else val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits));

val = val/Point;

return(val);

}

//========== ФУНКЦИЯ takeProfit

void takeProfit(int current_pips, int ticket)

{

if(OrderSelect(ticket, SELECT_BY_TICKET))

{

if(current_pips >= nextTP && current_pips < (nextTP + Target_Increment))

{

if(OrderType()==1)

{

if(OrderClose(ticket, MAX_LOTS, Ask, 3))

nextTP+=Target_Increment;

else

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

}

else

{

if(OrderClose(ticket, MAX_LOTS, Bid, 3))

nextTP+=Target_Increment;

else

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

}

}

}

}

 
hkstar98:
Хай,

Есть ли кто-нибудь на этом замечательном форуме, кто мог бы модифицировать этот советник без стоп-лосса.

Спасибо

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

extern int INCREMENT=35;

extern double LOTS=0.1;

extern int LEVELS=3;

extern double MAX_LOTS=99;

extern int MAGIC=1803;

extern bool CONTINUE=true;

extern bool MONEY_MANAGEMENT=false;

extern int RISK_RATIO=2;

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

bool UseProfitTarget=false;

bool UsePartialProfitTarget=false;

int Target_Increment = 50;

int First_Target = 20;

bool UseEntryTime=false;

int EntryTime=0;

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

bool Enter=true;

int nextTP;

int init()

{

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

nextTP = First_Target;

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

return(0);

}

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

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

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

int deinit()

{

return(0);

}

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

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

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

int start()

{

int ticket, cpt, profit, total=0, BuyGoalProfit, SellGoalProfit, PipsLot;

double ProfitTarget=INCREMENT*2, BuyGoal=0, SellGoal=0, spread=(Ask-Bid)/Point, InitialPrice=0;

//----

if(INCREMENT<MarketInfo(Symbol(),MODE_STOPLEVEL)+spread) INCREMENT=1+MarketInfo(Symbol(),MODE_STOPLEVEL)+spread;

if(MONEY_MANAGEMENT) LOTS=NormalizeDouble(AccountBalance()*AccountLeverage()/1000000*RISK_RATIO,0)*MarketInfo(Symbol(),MODE_MINLOT);

if(LOTS<MarketInfo(Symbol(),MODE_MINLOT))

{

Комментарий("Недостаточно свободной маржи для начала");

return(0);

}

for(cpt=1;cpt<LEVELS;cpt++) PipsLot+=cpt*INCREMENT;

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

if(OrderMagicNumber()==MAGIC && OrderSymbol()==Symbol())

{

total++;

if(!InitialPrice) InitialPrice=StrToDouble(OrderComment());

if(UsePartialProfitTarget && UseProfitTarget && OrderType()<2)

{

double val=getPipValue(OrderOpenPrice(),OrderType());

takeProfit(val,OrderTicket());

}

}

}

if(total<1 && Enter && (!UseEntryTime || (UseEntryTime && Hour()==EntryTime)))

{

if(AccountFreeMargin()<(100*LOTS))

{

Print("Недостаточно свободной маржи для начала работы");

return(0);

}

// - Открытый чек - Начало цикла

InitialPrice=Ask;

SellGoal=InitialPrice-(LEVELS+1)*INCREMENT*Point;

BuyGoal=InitialPrice+(LEVELS+1)*INCREMENT*Point;

for(cpt=1;cpt<=LEVELS;cpt++)

{

OrderSend(Symbol(),OP_BUYSTOP,LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

OrderSend(Symbol(),OP_SELLSTOP,LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

} // начальная настройка выполнена - все каналы настроены

else // У нас есть открытые ордера

{

BuyGoal=InitialPrice+INCREMENT*(LEVELS+1)*Point;

SellGoal=InitialPrice-INCREMENT*(LEVELS+1)*Point;

total=OrdersHistoryTotal();

for(cpt=0;cpt<total;cpt++)

{

OrderSelect(cpt,SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && StrToDouble(OrderComment())==InitialPrice){EndSession();return(0);}

}

if(UseProfitTarget && CheckProfits(LOTS,OP_SELL,true,InitialPrice)>ProfitTarget) {EndSession();return(0);}

BuyGoalProfit=CheckProfits(LOTS,OP_BUY,false,InitialPrice);

SellGoalProfit=CheckProfits(LOTS,OP_SELL,false,InitialPrice);

if(BuyGoalProfit<ProfitTarget)

// - Покупка лотов

{

for(cpt=LEVELS;cpt>=1 && BuyGoalProfit<ProfitTarget;cpt--)

{

if(Ask<=(InitialPrice+(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))

{

ticket=OrderSend(Symbol(),OP_BUYSTOP,cpt*LOTS,InitialPrice+cpt*INCREMENT*Point,2,SellGoal,BuyGoal,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

if(ticket>0) BuyGoalProfit+=LOTS*(BuyGoal-InitialPrice-cpt*INCREMENT*Point)/Point;

}

}

if(SellGoalProfit<ProfitTarget)

// - Увеличиваем лоты продажи

{

for(cpt=LEVELS;cpt>=1 && SellGoalProfit<ProfitTarget;cpt--)

{

if(Bid>=(InitialPrice-(cpt*INCREMENT-MarketInfo(Symbol(),MODE_STOPLEVEL))*Point))

{

ticket=OrderSend(Symbol(),OP_SELLSTOP,cpt*LOTS,InitialPrice-cpt*INCREMENT*Point,2,BuyGoal+spread*Point,SellGoal+spread*Point,DoubleToStr(InitialPrice,MarketInfo(Symbol(),MODE_DIGITS)),MAGIC,0);

}

if(ticket>0) SellGoalProfit+=LOTS*(InitialPrice-cpt*INCREMENT*Point-SellGoal-spread*Point)/Point;

}

}

}

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

Comment("mGRID EXPERT ADVISOR ver 2.0\n",

"FX Acc Server:",AccountServer(),"\n",

"Date: ",Month(),"-",Day(),"-",Year(), "Server Time: ",Hour(),":",Minute(),":",Seconds(),"\n",

"Минимальный размер лота: ",MarketInfo(Symbol(),MODE_MINLOT),"\n",

"Баланс счета: $",AccountBalance(),"\n",

"Символ: ",Symbol(),"\n",

"Цена: ",NormalizeDouble(Bid,4),"\n",

"Pip Spread: ",MarketInfo("EURUSD",MODE_SPREAD),"\n",

"Increment=" + INCREMENT,"\n",

"Lots: ",LOTS,"\n",

"Уровни: " + LEVELS,"\n");

return(0);

}

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

int CheckProfits(double LOTS, int Goal, bool Current, double InitialPrice)

{

int profit=0, cpt;

if(Current)//возвращает текущую прибыль

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

if(OrderType()==OP_BUY) profit+=(Bid-OrderOpenPrice())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-Ask)/Point*OrderLots()/LOTS;

}

}

return(profit);

}

else

{

if(Goal==OP_BUY)

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

if(OrderType()==OP_BUY) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELL) profit-=(OrderStopLoss()-OrderOpenPrice())/Point*OrderLots()/LOTS;

if(OrderType()==OP_BUYSTOP) profit+=(OrderTakeProfit()-OrderOpenPrice())/Point*OrderLots()/LOTS;

}

}

return(profit);

}

else

{

for(cpt=0;cpt<OrdersTotal();cpt++)

{

OrderSelect(cpt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && StrToDouble(OrderComment())==InitialPrice)

{

if(OrderType()==OP_BUY) profit-=(OrderOpenPrice()-OrderStopLoss())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELL) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;

if(OrderType()==OP_SELLSTOP) profit+=(OrderOpenPrice()-OrderTakeProfit())/Point*OrderLots()/LOTS;

}

}

return(profit);

}

}

}

bool EndSession()

{

int cpt, total=OrdersTotal();

for(cpt=0;cpt<total;cpt++)

{

Sleep(3000);

OrderSelect(cpt,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderType()>1) OrderDelete(OrderTicket());

else if(OrderSymbol()==Symbol() && OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3);

else if(OrderSymbol()==Symbol() && OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3);

}

if(!CONTINUE) Enter=false;

return(true);

}

double getPipValue(double ord,int dir)

{

double val;

RefreshRates();

if(dir == 1) val=(NormalizeDouble(ord,Digits) - NormalizeDouble(Ask,Digits));

else val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits));

val = val/Point;

return(val);

}

//========== ФУНКЦИЯ takeProfit

void takeProfit(int current_pips, int ticket)

{

if(OrderSelect(ticket, SELECT_BY_TICKET))

{

if(current_pips >= nextTP && current_pips < (nextTP + Target_Increment))

{

if(OrderType()==1)

{

if(OrderClose(ticket, MAX_LOTS, Ask, 3))

nextTP+=Target_Increment;

else

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

}

else

{

if(OrderClose(ticket, MAX_LOTS, Bid, 3))

nextTP+=Target_Increment;

else

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

}

}

}

}

Привет

вот, пожалуйста

Файлы:
new.mq4  8 kb
 

codersguru:
jdun,

Код SL и TP уже написан в этом советнике:

Посмотрите на эти строки:

if (Symbol()=="GBPUSD") {

PipsForEntry= 13;

TrailingStop = 40;

TakeProfit = 45;

InitialStopLoss=33;

} else if (Symbol()=="EURUSD") {

PipsForEntry= 13;

TrailingStop = 30;

TakeProfit = 45;

InitialStopLoss=23;

} else if (Symbol()=="USDCHF") {

PipsForEntry= 13;

TrailingStop = 30;

TakeProfit = 45;

InitialStopLoss=15;

} else {

PipsForEntry= 13;

TrailingStop = 30;

TakeProfit = 45;

InitialStopLoss=30;

} [/PHP]

If you want to make SL & TP external variables which you can set, you have to comment the above lines of code and uncomment these lines:

[PHP]/*

extern int PipsForEntry= 5;

extern double TrailingStop = 40;

extern double TakeProfit = 120;

extern double InitialStopLoss=50;

*/
 

максимальное количество сделок на сигнал

Кто-нибудь знает, что я могу использовать для ограничения количества сделок на сигнал (я бы хотел 1 сделку на сигнал, но получаю около 8 и последняя всегда проигрышная).

 

Помогите

Хай,

Стоп-лосс все еще есть

pghiaci:
Здравствуйте.
 

Советник с несколькими пользовательскими таймфреймами?

Я понимаю, что советник может быть сделан с несколькими таймфреймами, но можно ли написать советник с пользовательским временем? У меня есть советник с MTF, но мне нужны пользовательские времена, а не времена по умолчанию, поэтому они не так часто "выстраиваются".

с уважением,