Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
...
Удалено mladen
Причина: нет смысла показывать, что может пойти не так.
Спасибо
SymbolList fromSet - База кодов MQL4
Спасибо....... Роджер
нужна помощь с кодом...
спасибо вам, ребята...
Помогите пожалуйста
ПРИВЕТ ВСЕМ,
Кто-нибудь может помочь сделать так, чтобы этот индикатор не перерисовывал прошлую историю, особенно если бар был закрыт, индикатор перерисовывает иногда 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;
}
}
Похоже, что отступы не вставились правильно, извините.
Здравствуйте, коллеги,
Я не программист, но буду очень признателен, если кто-нибудь поможет мне с этим вопросом.
Как мне переписать этот код, чтобы он выполнял следующее;
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.
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