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

 

...

Удалено mladen

Причина: нет смысла показывать, что может пойти не так.

 

Спасибо

Спасибо....... Роджер

 

нужна помощь с кодом...

спасибо вам, ребята...

 

Помогите пожалуйста

ПРИВЕТ ВСЕМ,

Кто-нибудь может помочь сделать так, чтобы этот индикатор не перерисовывал прошлую историю, особенно если бар был закрыт, индикатор перерисовывает иногда 2-3 бара в реальной торговле после закрытия свечей и если возможно добавить к нему оповещение.Спасибо заранее.

 

нужна помощь по коду...

Здравствуйте коллеги,

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

Как мне переписать этот код, чтобы он делал следующее;

if (Total Open Order = 0)

тогда

lot = Type1Lot(order_type);

if (Total Open Order = 1)

тогда

лот = Type2Lot(order_type);

if (Total Open Order > 2)

тогда

лот = Type3Lot(order_type);

Спасибо всем.

Цените

 

Есть ли лучший способ кодирования

Я закодировал инди, который наносит на график максимумы/минимумы колебаний, и мне нужно знать последнюю из них, прежде чем продолжить. Это моя попытка поиска этих двух цен (поэтому мне нужна помощь).

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

Не мог бы кто-нибудь взглянуть на это и посмотреть, есть ли лучший способ кодирования этой части?

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

int highbar,lowbar,i,n;

double curlow=0, curhigh=0;

for (i=200;i>=1;i--)

{

if (High<High && High<High && High && High<High)

{

curhigh=High;

highbar=i+2;

}

if (Low>Low && Low>Low && Low>Low && Low>Low && Low>Low)

{

curlow=Low;

lowbar=i+2;

}

}

//---- проверяем, есть ли свеча выше/ниже с момента последнего фрактала----------

n=MathMax(highbar,lowbar );

for (int x=n-1;x>=0;x--)

{

if (High[x]> curhigh)

{

curhigh=High[x];

highbar=x;

}

if (Low[x]< curlow)

{

curlow=Low[x];

lowbar=x;

}

}

Похоже, что отступы не вставились правильно, извините.

 
forexarchitect:
Здравствуйте, коллеги,

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

Как мне переписать этот код, чтобы он выполнял следующее;

if (Total Open Order = 0)

тогда

lot = Type1Lot(order_type);

if (Total Open Order = 1)

тогда

лот = Type2Lot(order_type);

if (Total Open Order > 2)

тогда

лот = Type3Lot(order_type);

Спасибо всем.

Цените

Я ни в коем случае не специалист по кодированию, но я думаю, что вам нужно просмотреть все ваши заказы и подсчитать, какие заказы соответствуют вашим спецификациям. Затем используйте разные операторы if для разных типов заказов... пример.

int total=OrdersTotal(),totalBuy,totalSell;

for (int q=0; q<total; q++ )

{

OrderSelect(q,SELECT_BY_TICKET,MODE_TRADES);

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

totalBuy++;

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

totalSell++;

}

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

 

Разместить лимитный ордер на 50 и 100 психологических уровнях

Привет, мне нужна небольшая помощь с моим кодом. Можно ли использовать этот код для размещения рыночного лимитного ордера на 50 и 100 круглых уровнях валютной пары. Я хочу разместить ордер на уровнях 50 и 100 выше и ниже текущего Ask/Bid.

if (Point == 0.00001) Poin = 0.0001; //6 digits

else if (Point == 0.001) Poin = 0.01; //3 digits (for Yen based pairs)

else Poin = Point; //Normal

for(double q=Ask*Poin,q<Ask+100*Poin,q++)

{

if(MathMod(q,100) == 0 || MathMod(q,50) == 0)

{

\\ Place limit order

}

for(double q=Bid*Poin,q>Bid-100*Poin,q--)

{

if(MathMod(q,100) == 0 || MathMod(q,50) == 0)

{

\\ Place limit order

}

Любая помощь будет принята с благодарностью.

 

Индикатор цвета бара

Здравствуйте, может ли кто-нибудь помочь с индикатором для MT4?

Не уверен, что это можно сделать, но нужно, чтобы бары были перекрашены.

R1 = наименьшее значение за последние 20 баров + (2*ATR(10))

R2 = наибольшее значение за последние 20 баров - (2*ATR(10)).

Если цена закрытия больше R1, то окрасьте бар as.... в ярко-синий цвет.

Если цена закрытия предыдущего бара меньше R2, то цвет бара..... FireBrick

Спасибо

A

 

все еще ищу пример кода советника, открывающего более 1 ордера

Я хочу открыть только 2 ордера за раз, 1 с tp и 1 без, а затем НИКОГДА не открывать другой в этом направлении, пока условия не изменятся на открытие в противоположном направлении. затем закрыть все и повторить в противоположном направлении.

Я изо всех сил пытаюсь закодировать это, но... пока безуспешно.

Самые большие проблемы - 1 позиция открывается на закрытии свечи... затем вторая открывается на закрытии следующей свечи. Я также получаю более 2 открытых позиций иногда и я получаю новую позицию каждый раз, когда 1-я попадает в TP. ВСЕ ОЧЕНЬ ПЛОХО.

Вот код ордера на покупку и на продажу в основном то же самое...

ЛЮБОЙ СОВЕТ будет полезен, я готов напечатать код.

Даже советник, который делает это, который я могу посмотреть для примера...

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

БОЛЬШОЕ СПАСИБО

if ( ) {

Closebuy = True;

MAcrossDown = True;

MAcrossUP = False;

OrdertotalCloseBuy = OrdersTotal();

int AttemptsTriedCloseBuy = 0;

bool OrderCloseBuy = False;

bool PositionClosedBuy = False;

if(OrdersTotal() > 0 ){

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);

if(OrderType() == OP_BUY){

for (int i = OrdertotalCloseBuy-1; i >= 0; i --) {

PositionClosedBuy = False;

AttemptsTriedCloseBuy = 0;

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

while (!PositionClosedBuy && AttemptsTriedCloseBuy < CloseposnAttempts) {

AttemptsTriedCloseBuy = AttemptsTriedCloseBuy + 1;

OrderCloseBuy = OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, LimeGreen);

Sleep(PausebetweenOrders * 1000);

if(OrderCloseBuy == True) { // Позиция закрыта успешно.

PositionClosedBuy = True;

// if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

} else if( Order == False && AttemptsTried >= CloseposnAttempts ) {

Print( AttemptsTried + " попытки закрыть рыночный ордер " +

OrderTicket() + " не удалось. Error [ " + GetLastError() + " ]" );

// if (SignalMail) SendMail( AttemptsTried, " попытки закрыть ордер Buy Market не удались" );

} // End If, Order:

} // End While Loop, AccountAvailable:

}//for

}//if ordertype

}//if orderstotal

Sleep(1000);

if(OrdersTotal() == 0 && Closebuy == True && Sell_Complete_Wait4Cross_Up == False) {

SellTicket1 = False;

SellTicket1 = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLoss, Bid - TakeProfit * Point, "SELL(#" + MagicNumber + ")", MagicNumber, 0, Red);

Sleep(PausebetweenOrders * 1000);

Sell_Complete_Wait4Cross_Up = True;

Buy_Complete_Wait4Cross_Down = False;

if (Ticket && SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open 1st Sell");

Sleep(1000);

SellTicket2 = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLoss, 0, "2nd SELL(#" + MagicNumber + ")", MagicNumber, 0, Pink);

Sleep(PausebetweenOrders * 1000);

if (Ticket2 && SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open 2nd Sell");

if(OrdersTotal() == 2 && MAcrossDown == True) {Sell_Complete_Wait4Cross_Up = True; Buy_Complete_Wait4Cross_Down = False;}

}//Ordersend

} //Closebuy

Причина обращения: