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

 
asgard2:
Привет,

Я не могу скомпилировать его из-за ошибки несбалансированных круглых скобок, может ли кто-нибудь сказать мне, почему они несбалансированные?

Спасибо

Если вы получаете эту ошибку, значит, вам не хватает одного из [ или { или (

Возможно, где-то в вашем коде есть функция, в которой вы ставите слишком много {[(

Я проверил часть вашего кода и нашел несколько ошибок. Попробуйте это:

if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order

{

int hstTotal=OrdersHistoryTotal();

for(i=0;i<hstTotal;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == false)

{

Print("Access to history failed ("+GetLastError()+")");

break;

}

else

{

if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

Также я думаю, что последняя часть вашего кода (OrderDelete) не будет работать, потому что функция OrderDelete ничего не проверяет - она удаляет выбранный заказ. Поэтому вам нужно передать ей параметр с тикетом заказа. Вместо этого вы можете узнать удаленные заказы, проверив их комментарии. Каждый удаленный заказ будет иметь "canceled" в комментарии - вы можете сравнить результат функции OrderComment(), чтобы найти это.

 

Кто-нибудь может мне помочь?

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

Я пытаюсь написать советника, и мне нужна помощь в написании формулы.

Я хочу, чтобы формула вычисляла разницу между закрытием предыдущей свечи (PCC1) и закрытием свечи две свечи назад (PCC2) (я буду работать на нескольких парах). HoL=(PCC1-PCC2)

Моя цель - подать сигнал на покупку или продажу;

bool BuySignal=false;

bool SellSignal=false;

если(HoL>0) BuySignal=true;

if(HoL<0) SellSignal=true;

Спасибо за помощь.

 

...

Если вы хотите использовать несколько символов из одного экземпляра советника, что вы можете использовать что-то вроде этого:

double HoL=iClose(symbolName,0,1)-iClose(symbolName,0,2);[/php]Or to prevent some back testing surprises, a slightly more complicated code

int symbolShift1 = iBarShift(symbolName,0,Time[1]);

int symbolShift2 = iBarShift(symbolName,0,Time[2]);

double HoL = iClose(symbolName,0,symbolShift1)-iClose(symbolName,0,symbolShift2);

If you are going to use it only on symbol that your EA is attached to than this

[php]

double HoL=Close[1]-Close[2];

достаточно

PS:"symbolName" должно быть установлено на Symbol по вашему выбору.

с уважением

mladen

ForExTryo:
Здравствуйте,

Я пытаюсь написать советника, и мне нужна помощь в написании формулы.

Я хочу, чтобы формула вычисляла разницу между закрытием предыдущей свечи (PCC1) и закрытием свечи двумя свечами назад (PCC2) (я буду работать на нескольких парах). HoL=(PCC1-PCC2)

Моя цель - подать сигнал на покупку или продажу;

bool BuySignal=false;

bool SellSignal=false;

if(HoL>0) BuySignal=true;

if(HoL<0) SellSignal=true;

Спасибо за помощь.
 
 

Скрыть ТП

Заменить

void OpenBuy()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,Ask+TP*Poin t,"Ask-StopLoss*Point,EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}

void OpenSell()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,Bid-TP*Point,Bid+StopLoss*Point,"EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}[/CODE]

to

[CODE]void OpenBuy()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,0,"Ask-StopLoss*Point,EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}

void OpenSell()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,0,"EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}
 

Расстояние между ордерами Buy Stop

Привет всем, я пытаюсь реализовать расстояние между удаленным ордером buy stop и следующим ордером buy stop.

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

спасибо

// Задержка времени для следующего удаленного ордера "Buy Stop".

//Time Delay for the next Buy Stop Order

if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))

{

total = OrdersHistoryTotal();

for(e = total - 1; e >= 0; e--)

{

OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol() != Symbol()) continue;

{

if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

}

 
asgard2:
Привет всем,

Я думаю, так будет лучше:

//Time Delay for the next Buy Stop Order

if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))

{

total = OrdersHistoryTotal();

for(e = total - 1; e >= 0; e--)

{

OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol() != Symbol()) continue;

if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

break;

}

}
 
Roger09:
Я думаю, так будет лучше:

Привет, Роджер,

Я очень новичок в кодировании, почему я использую там "break"? Он автоматически прерывается, когда оператор завершается?

И еще, подскажите, как выбрать удаленный заказ из истории?

спасибо

 

Вы показали нам только фрагмент кода, и я могу только догадываться.

Я предполагаю, что вы начинаете проверять историю после закрытия последнего ордера, поэтому вам нужно знать время, когда он был закрыт. Самый свежий закрытый ордер находится в конце истории, поэтому вам не нужно знать другое и "прерывать" проверку.

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

 

нужен кодер для простого советника

прибыльная система: мин 50 пипсов -200 пипсов прибыли за сделку

система на 1 час

использование только 1 индикатора плюс ATR (20)

простой советник с tp/sl/trailing stop

EA кодер может помочь бесплатно, пожалуйста, PM с вашей электронной почтой