Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 582

 
Twilight:

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


Comment("test"+test2,testJPY);

Comment("testJPY[1] = ",testJPY[1]);
Как-то так, пробуйте.
 
r772ra:

Как-то так, пробуйте.


Нет Вы не поняли задание.

Нужно Способ передавать либо имя переменной либо значение переменной в зависимости от ситуации.

 

Можно ли одной переменной присвоить несколько значений?


что-то в этом роде

int N=(1;2;5;9;15;19)

 
abeiks:

Можно ли одной переменной присвоить несколько значений?


что-то в этом роде

int N=(1;2;5;9;15;19)

А как потом разобраться какое значение надо использовать?

Или ты имел ввиду массив объявить? Тогда int N[6] = {1, 2, 5, 9, 15, 19};

Я такими массивами не пользуюсь, если в чём-то ошибся знающие поправят...


 
AlexeyVik:
А как потом разобраться какое значение надо использовать?

Или ты имел ввиду массив объявить? Тогда int N[6] = {1, 2, 5, 9, 15, 19};

Я такими массивами не пользуюсь, если в чём-то ошибся знающие поправят...



Спасибо! Думаю это использовать в тестах как ограничению торговли в определенные дни месяца. if(Day()==N[6]) !trade;

 

Здравствуйте!Помогите пожалуйста...

Как можно создать окошко на графике,в котором можно будет разместить отрезок этого же графика,зная время начала и конца отрезка.

Спасибо...

 

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

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

//| Test3.mq4 |

//| Попов Владимир |

//| http://vk.com/id143715412 |

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

#property copyright "Попов Владимир"

#property link "http://vk.com/id143715412"


extern double Lots = 0.1;

extern int TakeProfit = 130;

extern int StopLoss = 80;

extern int Slippage = 5;

extern string comment = "Tma bot";

extern int Magic = 123;

extern string Indi = "Данные индикатора";

extern string TimeFrame = "current time frame";

extern int HalfLength = 20;

extern int Price = PRICE_CLOSE;

extern double ATRMultiplier = 2.0;

extern int ATRPeriod = 100;

extern bool Interpolate = true;

extern int Indent = 5;


extern int KPeriod =5;

extern int DPeriod =3;

extern int Slowing =3;



double PriceHigh, PriceLow, SL, TP, PriceMiddle, PriceBuy, StochasticHigh, StochasticLow, PriceSell;

double HighesBuffer[];

double LowesBuffer[];

int ticket1, ticket2;


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

//| expert initialization function |

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

int init()

{


if (Digits == 3 || Digits == 5)

{

TakeProfit *= 10;

StopLoss *= 10;

Slippage *= 10;

}





return(0);

}

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

//| expert deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| expert start function |

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

int start()

{

PriceHigh = iCustom (Symbol (), 0, "Time", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0);

PriceLow = iCustom (Symbol (), 0, "Time", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);

PriceMiddle = iCustom (Symbol (), 0, "Time", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 0, 0);

double lots, Lot;

if (Bid >= PriceHigh && CountSell() == 0)

{

SL = NormalizeDouble(Bid+StopLoss*Point, Digits);

TP = NormalizeDouble(Bid-TakeProfit*Point, Digits);

ticket1 = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, comment, Magic, 0, Red);

if (ticket1 > 0)

{

if(OrderSelect(ticket1, SELECT_BY_TICKET, MODE_TRADES) == true)

OrderModify(ticket1, OrderOpenPrice(), SL, TP, 0);

PriceBuy = NormalizeDouble(OrderOpenPrice() + Indent*Point, Digits);

}

ticket2 = OrderSend(Symbol(), OP_BUYSTOP, Lots, PriceBuy, Slippage, 0, 0, comment, Magic, 0, Green);

if (ticket2 > 0)

{

if (OrderSelect(ticket2, SELECT_BY_TICKET, MODE_TRADES)==true)

{

SL = NormalizeDouble(PriceBuy - StopLoss * Point, Digits);

TP = NormalizeDouble(PriceBuy + TakeProfit * Point, Digits);

OrderModify(ticket2, OrderOpenPrice(), SL, TP, 0);

}

}

}


if(Ask <= PriceLow && Ask <= StochasticLow && CountBuy() == 0)

{

SL = NormalizeDouble(Ask-StopLoss*Point, Digits);

TP = NormalizeDouble(Ask+TakeProfit*Point, Digits);

ticket1 = OrderSend(Symbol(), OP_BUY, Lots, Bid, Slippage, 0, 0, comment, Magic, 0, Blue);

if (ticket1 > 0)

{

if(OrderSelect(ticket1, SELECT_BY_TICKET, MODE_TRADES) == true)

OrderModify(ticket1, OrderOpenPrice(), SL, TP, 0);

PriceSell = NormalizeDouble(OrderOpenPrice() - Indent*Point, Digits);

}

ticket2 = OrderSend(Symbol(), OP_SELLSTOP, Lots, PriceSell, Slippage, 0, 0, comment, Magic, 0, Orange);

if (ticket2 > 0)

{

if (OrderSelect(ticket2, SELECT_BY_TICKET, MODE_TRADES)==true)

{

SL = NormalizeDouble(PriceSell + StopLoss * Point, Digits);

TP = NormalizeDouble(PriceSell - TakeProfit * Point, Digits);

OrderModify(ticket2, OrderOpenPrice(), SL, TP, 0);

}

}

}

if (Ask <= PriceMiddle && CountSell() > 0)

{

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

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)

{

if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black);

}

}

}

if (Bid >= PriceMiddle && CountBuy() > 0)

{

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

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)

{

if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Green);

}

}

}

return(0);

}

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


int CountBuy()

{

int count = 0;

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

{

OrderSelect(tr, SELECT_BY_POS);

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

{

if (OrderType() == OP_BUY)

count++;

}

}

return (count);

}


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


int CountSell()

{

int count = 0;

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

{

OrderSelect(tr, SELECT_BY_POS);

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

{

if (OrderType() == OP_SELL)

count++;

}

}

return (count);

}

 
Уважаемые профи, подскажите - есть два пользовательских индикатора,оба гисторамные .оба в отдельном окне.показания отображаются целыми числами . Каким образом сделать индикатор который будет показывать частное ( показания одного делить на показание второго). такое действие делается например в индикаторе Била Вильямса - MFI- там делят показания размера свечи на показание тикового обьема . только кода нет ни где, для образца . Я вот думаю может есть какой то шаблон ( скелет ) в который можно вставить названия индикаторов или их коды, чтобы получился индикатор показывающий их деление ( частное) . Кто что знает подскажите .
 
AlexeyVik:
А как потом разобраться какое значение надо использовать?

Или ты имел ввиду массив объявить? Тогда int N[6] = {1, 2, 5, 9, 15, 19};

Я такими массивами не пользуюсь, если в чём-то ошибся знающие поправят...



int N[6] = {1, 2, 5, 9, 15, 19};

if(Day()==N[6]) !trade;

Однако такое предложение не сработало - array out of range... Testing pass stopped due to a critical error in the EA.

 
abeiks:

int N[6] = {1, 2, 5, 9, 15, 19};

if(Day()==N[6]) !trade;

Однако такое предложение не сработало - array out of range... Testing pass stopped due to a critical error in the EA.

Ну если-бы ты хоть немного прочёл о массивах, то понял-бы что индексация массивов начинается с нуля и до размерность-1 то-есть в твоём случае от 0 до 5
Причина обращения: