[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 18
Non si tratta di stoplot, ma di chiudere la posizione non appena il prezzo tocca la MA
Che sia così, sei stato tu a scrivere delle fermate...) Ma non riesco a capire perché non funziona senza il codice. Il pezzo sopra non è molto informativo.
Così sia, sei stato tu a scrivere di tappi...). Tuttavia, senza il codice è impossibile capire perché non funziona, il pezzo postato è completamente disinformativo.
Devo essermi espresso molto male, mi scuso, volevo dire che lo stesso MA dovrebbe servire come stop-loss
... ... la posizione è stata chiusa non appena il prezzo ha toccato MA
E il codice è estremamente primitivo:
Ticket=OrderTicket();
Tip =OrderType();
Lot =OrderLots();
MA2C=iMA(NULL,0, Period_MA2,0,MODE_SMA,PRICE_CLOSE,0);//Есть две MA с разным периодом.
MA3C=iMA(NULL,0, Period_MA3,0,MODE_SMA,PRICE_CLOSE,0);//И вот с такими параметрами.//Так же есть условия, при которых по идее должны срабатывать // функции закрытия ордеров.RefreshRates();if( Tip==0&&Bid== MA2C)//Обозначение типа ордера и условия закрытия{
CloseBuy=true;// Закрыть Buy}RefreshRates();if( Tip==0&&Bid== MA3C){
CloseBuy=true;// Закрыть Buy}RefreshRates();if( Tip==1&&Ask== MA2C){
CloseSell=true;// Закрыть Sell}RefreshRates();if( Tip==1&&Ask== MA3C){
CloseSell=true;// Закрыть Sell}// Закрытие ордеровwhile(true)// Цикл закрытия орд.{if( Tip==0&& CloseBuy==true)// Открыт ордер Buy..{//и есть критерий закрAlert("Попытка закрыть Buy ", Ticket,". Ожидание ответа..");RefreshRates();// Обновление данных
ALERT=OrderClose( Ticket, Lot,Bid,3,Blue);// Закрытие Buyif( ALERT==true)// Получилось :){Alert("Закрыт ордер Buy ", Ticket);break;// Выход из цикла закр}if( Fun_Error(GetLastError())==1)// Обработка ошибокcontinue;// Повторная попыткаreturn;// Выход из start()}if( Tip==1&& CloseSell==true)// Открыт ордер Sell..{// и есть критерий закрAlert("Попытка закрыть Sell ", Ticket,". Ожидание ответа..");RefreshRates();// Обновление данных
ALERT=OrderClose( Ticket, Lot,Ask,3,Red);// Закрытие Sellif( ALERT==true)// Получилось :){Alert("Закрыт ордер Sell ", Ticket);break;// Выход из цикла закр}if( Fun_Error(GetLastError())==1)// Обработка ошибокcontinue;// Повторная попыткаreturn;// Выход из start()}break;// Выход из while}
Penso già che le 4 condizioni possano essere cambiate in 2
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();// Тип выбранного орд.
Lot =OrderLots();// Количество лотов}//И далее как выше...
È importante per me capire se questo è possibile in linea di principio, perché quando viene testato in modalità di visualizzazione, gli ordini non si chiudono su MA
Novice писал(а)>> Voglio sapere se è possibile farlo in linea di principio perché durante i test in modalità di visualizzazione, gli ordini non vengono chiusi su MA
In linea di principio è possibile. Avete un solo ordine possibile nel vostro sistema?
Prova a normalizzare i prezzi Bid/Ask e i valori MA per l'uguaglianza, è necessario...
Perché non usi il tuo Expert Advisor? L'avrei corretto molto tempo fa.
>> Metti tutto il codice là fuori, non c'è ancora odore di tappi qui...
Non si tratta di stopper, ma di chiudere una posizione non appena il prezzo tocca la MA
Non si tratta di stoplot, ma di chiudere la posizione non appena il prezzo tocca la MA
Che sia così, sei stato tu a scrivere delle fermate...) Ma non riesco a capire perché non funziona senza il codice. Il pezzo sopra non è molto informativo.
Così sia, sei stato tu a scrivere di tappi...). Tuttavia, senza il codice è impossibile capire perché non funziona, il pezzo postato è completamente disinformativo.
Devo essermi espresso molto male, mi scuso, volevo dire che lo stesso MA dovrebbe servire come stop-loss
... ... la posizione è stata chiusa non appena il prezzo ha toccato MA
E il codice è estremamente primitivo:
Penso già che le 4 condizioni possano essere cambiate in 2
Poi è così) Comunque, è un pezzo delirante, i carri sono costruiti a prezzi Bid, e confrontarli così... Non lo so.
Qualcosa nel tuo codice, OrderSelect non vedere?
È standard, da un libro di testo:
È importante per me capire se questo è possibile in linea di principio, perché quando viene testato in modalità di visualizzazione, gli ordini non si chiudono su MAVoglio sapere se è possibile farlo in linea di principio perché durante i test in modalità di visualizzazione, gli ordini non vengono chiusi su MA
In linea di principio è possibile. Avete un solo ordine possibile nel vostro sistema?
Prova a normalizzare i prezzi Bid/Ask e i valori MA per l'uguaglianza, è necessario...
Perché non usi il tuo Expert Advisor? L'avrei corretto molto tempo fa.
In linea di principio è possibile. Avete un solo ordine possibile nel vostro sistema?
Prova a normalizzare i prezzi Bid/Ask e i valori MA per l'uguaglianza, è necessario...
Perché non usi il tuo Expert Advisor? L'avrei corretto molto tempo fa.
Dopo di che la mia testa ha iniziato a girare...
No) A un graal come ad altre galassie, solo tentativi di realizzare e migliorare TC.
Non ho potuto inserire tutto il codice nel post, quindi sto allegando
Dopo di che, la mia testa ha iniziato a girare...
No) Il Graal è come un'altra galassia, solo un tentativo di implementare e migliorare TC.
Non sono riuscito a mettere tutto il codice in questo post, quindi lo sto incollando qui.
Ma in linea di principio, in qualche modo funziona:
L'unica cosa che ho rimosso l'aumento del lotto. Non avevi detto che gli ordini non sono chiusi?
Quindi come...?
...normalizzare i prezzi Bid/Ask e i valori MA quando si confrontano per l'uguaglianza...
Solo che non capisco esattamente come normalizzare... NormalizeDouble(Ask, Digits) ?
Il problema è attuale, mi sto ancora chiedendo come far chiudere gli ordini non appena il prezzo MA viene raggiunto.
Dopo la normalizzazione è uscito un errore durante la compilazione per qualche motivo, e nella parte del codice dove non è stato toccato affatto.