[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 334
gisip: Forse ti sei dimenticato di usare OrderSend quindi cita: "Domanda: perché non c'è l'apertura degli ordini, dov'è l'errore? Per favore, dimmelo!"?
Non c'è una tale funzione nel codice sorgente del "semplice Expert Advisor". Non so dove scriverlo nella mia versione:
//--------------------------------------------------------------- 4 --// Учёт ордеров
Symb=Symbol(); // Название фин.инстр.
Total=0; // Количество ордеровfor(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:if (OrderSymbol()!=Symb)continue; // Не наш фин. инструмif (OrderType()>1) // Попался отложенный
{
Alert("Обнаружен отложенный ордер. Эксперт не работает.");
return; // Выход из start()
}
Total++; // Счётчик рыночн. ордif (Total>1) // Не более одного орд
{
Alert("Несколько рыночных ордеров. Эксперт не работает.");
return; // Выход из start()
}
Ticket=OrderTicket(); // Номер выбранн. орд.
Tip =OrderType(); // Тип выбранного орд.
Price =OrderOpenPrice(); // Цена выбранн. орд.
SL =OrderStopLoss(); // SL выбранного орд.
TP =OrderTakeProfit(); // TP выбранного орд.
Lot =OrderLots(); // Количество лотов
}
}
//--------------------------------------------------------------- 5 --// Торговые критерииint A= ADXbars;
int B= CountBars;
//-------------------------------------------------------------- 5a --double b4plusdi=iCustom(NULL,0,"ADX Crossing",A,B);
double nowplusdi=iCustom(NULL,0,"ADX Crossing",A,B);
double b4minusdi=iCustom(NULL,0,"ADX Crossing",A,B);
double nowminusdi=iCustom(NULL,0,"ADX Crossing",A,B);
//-------------------------------------------------------------- 5b --if (b4plusdi>b4minusdi && nowplusdi<nowminusdi)
{
Opn_B=true; // Критерий откр. Buy
Cls_S=true; // Критерий закр. Sell
}
if (b4plusdi<b4minusdi && nowplusdi>nowminusdi)
{
Opn_S=true; // Критерий откр. Sell
Cls_B=true; // Критерий закр. Buy
}
//--------------------------------------------------------------- 6 --// Закрытие ордеровwhile(true) // Цикл закрытия орд.
{
if (Tip==0 && Cls_B==true) // Открыт ордер Buy..
{ //и есть критерий закрAlert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
RefreshRates(); // Обновление данных
Ans=OrderClose(Ticket,Lot,Bid,2); // Закрытие Buyif (Ans==true) // Получилось :)
{
Alert ("Закрыт ордер Buy ",Ticket);
break; // Выход из цикла закр
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
if (Tip==1 && Cls_S==true) // Открыт ордер Sell..
{ // и есть критерий закрAlert("Попытка закрыть Sell ",Ticket,". Ожидание ответа..");
RefreshRates(); // Обновление данных
Ans=OrderClose(Ticket,Lot,Ask,2); // Закрытие Sellif (Ans==true) // Получилось :)
{
Alert ("Закрыт ордер Sell ",Ticket);
break; // Выход из цикла закр
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
break; // Выход из while
}
//--------------------------------------------------------------- 7 --// Стоимость ордеров
RefreshRates(); // Обновление данных
Min_Lot=MarketInfo(Symb,MODE_MINLOT); // Миним. колич. лотов
Free =AccountFreeMargin(); // Свободн средства
One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// Стоимость 1 лота
Step =MarketInfo(Symb,MODE_LOTSTEP); // Шаг изменен размераif (Lots > 0) // Если заданы лоты,то
Lts =Lots; // с ними и работаем else// % свободных средств
Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;// Для открытияif(Lts < Min_Lot) Lts=Min_Lot; // Не меньше минимальнif (Lts*One_Lot > Free) // Лот дороже свободн.
{
Alert(" Не хватает денег на ", Lts," лотов");
return; // Выход из start()
}
//--------------------------------------------------------------- 8 --// Открытие ордеровwhile(true) // Цикл закрытия орд.
{
if (Total==0 && Opn_B==true) // Открытых орд. нет +
{ // критерий откр. Buy
RefreshRates(); // Обновление данных
SL=Bid - New_Stop(StopLoss)*Point; // Вычисление SL откр.
TP=Bid + New_Stop(TakeProfit)*Point; // Вычисление TP откр.Alert("Попытка открыть Buy. Ожидание ответа..");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buyif (Ticket > 0) // Получилось :)
{
Alert ("Открыт ордер Buy ",Ticket);
return; // Выход из start()
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
if (Total==0 && Opn_S==true) // Открытых орд. нет +
{ // критерий откр. Sell
RefreshRates(); // Обновление данных
SL=Ask + New_Stop(StopLoss)*Point; // Вычисление SL откр.
TP=Ask - New_Stop(TakeProfit)*Point; // Вычисление TP откр.Alert("Попытка открыть Sell. Ожидание ответа..");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP);//Открытие Selif (Ticket > 0) // Получилось :)
{
Alert ("Открыт ордер Sell ",Ticket);
return; // Выход из start()
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
break; // Выход из while
}
//--------------------------------------------------------------- 9 --return; // Выход из start()
}
//-------------------------------------------------------------- 10 --
P.S. C'è solo nel blocco di apertura dell'ordine (8).
Questo è un forum per aiutare le persone, non per vendere un elefante) nessuna idea a parte iHighest ?
https://docs.mql4.com/ru/series/iHigh
https://docs.mql4.com/ru/series/iBarShift
https://docs.mql4.com/ru/series/iHigh
https://docs.mql4.com/ru/series/iBarShift
C'è silenzio in risposta...
Qualche consiglio su dove scavare: https: //www.mql5.com/ru/forum/131277/page328
C'è silenzio in risposta...
Qualche consiglio su dove scavare: https: //www.mql5.com/ru/forum/131277/page328
Forse ti sei dimenticato di usare OrderSend quindi cita: "Domanda: perché non c'è l'apertura degli ordini, dov'è l'errore? Per favore, dimmelo!"?
Non c'è una tale funzione nel codice sorgente del "semplice Expert Advisor". Non so dove scriverlo nella mia versione:
P.S. C'è solo nel blocco di apertura dell'ordine (8).
Questa è una specie di sciocchezza. Non posso attaccare lo Zig-Zag alla grafica. Qualcuno può dirmi qual è il problema?
Questa è una specie di sciocchezza. Non posso attaccare lo Zig-Zag alla grafica. Qualcuno può dirmi qual è il problema?
Buon giorno cari utenti del forum, non vengo qui da molto tempo.
Ho visto che quest'anno ci sarà un altro campionato EA, ho deciso di parteciparvi. Qualcuno può suggerire un tutorial su MT5 come esempio?
Io stesso ho tentato di capire come funziona, ma non riesco a vedere nessun altro MT4 (.
Buon giorno cari utenti del forum, non vengo qui da molto tempo.
Ho visto che quest'anno ci sarà un altro campionato EA, ho deciso di parteciparvi. Qualcuno può suggerire un tutorial su MT5 come esempio?
Io stesso ho tentato di capire come funziona, ma non riesco a vedere nessun altro MT4 (.