[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 142
A cosa ti serve? Dimmi di più, forse c'è una soluzione, e tu non sai come fare le domande giuste perché la gente capisca.
Ho due soluzioni per quello che hai scritto, ci vorrebbe troppo tempo per scriverne due in una volta :)
..
A proposito, è meglio allegare codici così lunghi come un file.
E per il codice c'è un pulsante speciale SRC
Sì, mi serve per non perdere il segnale). Una volta che solo un allarme scatta, è facile non vederlo, soprattutto di notte(((( Cosa significa - allarme?? Cosa succederà?
Ho cambiato la linea... Ho creato un nuovo indicatore Alarm..... ma non capisco... funziona sempre indipendentemente dal fatto che l'indicatore emetta o meno un segnale... Anche se non c'è nessun segnale dall'indicatore, la sveglia suona continuamente)))) Non c'è nessun segnale, ma la sveglia funziona...
Ne ho bisogno per non perdere il segnale)) Suona solo un allarme una volta, facile da perdere soprattutto di notte(((( E cosa significa - allarme??? Cosa succederà?
Cambia la linea nel tuo indicatore come descritto sopra.
Compila ed esegui l'indicatore allegato.
Suonerà ad ogni tick, finché non disabiliterete l'indicatore o resetterete la variabile globale "Alarm".
Ho inserito delle funzioni KimIV per aprire un ordine (GetSizeLot() OpenPosition CorrectTF(int TimeFrame=0) GetNameOP(int op) ModifyOrder() ExistPositions() Message()). Non aveva ancora raggiunto la chiusura. Ho creato la propria funzione di dati dell'indicatore void Indicat_Var(), per avere i dati dell'indicatore in un posto e per utilizzarli in qualsiasi punto del programma.
Quando si accede con la funzione CheckForOpen() a Indicat_Var() tutto va bene, ma quando si accede con la funzione CheckForClose() a Indicat_Var() gli ordini non vengono chiusi, non capisco perché
Penso anche che le funzioni CalculateCurrentOrders(string symbol) e ExistPositions() si duplichino a vicenda.
La funzione di calcolo dei lotti era originariamente fornita nell'EA. Se ne hai aggiunto un altro (GetSizeLot()), allora (almeno) rimuovi quello originale - LotsOptimized()
Per favore, aiutatemi a capire perché i miei ordini aperti non si chiudono quando il trend cambia (condizioni aperte). E come posso risolvere questo errore!
Il codice è così per me:
externint TP=40;//уровень Take Profitexternint SL=0;//уровень Stop Lossexterndouble Lots1=0.2;//лот основной сделкиexterndouble Lots2=0.1;//лот вспомогательных сделок externint slippage=2;//проскальзованиеint MagicNumber1=5345;//магическое число сделки BUYint MagicNumber2=1612;//магическое число сделки SELL// переменная для пятизнаковint BrokerDecimal =1;// и просто нужные переменные (типа флажки)double ticketbuy;double ticketsell;int init(){// Если брокер дает котировки по валюте с точностью в пять или три знака - пипс будет меньше стандартного в 10 раз - вводим множитель if(Digits==3||Digits==5) BrokerDecimal=10;// Перемножить все уровни в пипсах на множитель
SL = SL * BrokerDecimal;
TP = TP * BrokerDecimal;return(0);}int start(){// Рассчеты и анализ индикаторовdouble jaw=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN, MODE_GATORJAW,1);//синяя линия (челюсть)double teen=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN, MODE_GATORTEETH,1);//красная линия (зубы)double lips=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN, MODE_GATORLIPS,1);//зеленая линия (губы)double lastClose=iClose(NULL,0,1);// Собственно тело программы if((OrderSelect( ticketbuy, SELECT_BY_TICKET, MODE_TRADES)==false||OrderCloseTime()>0)&& lips> jaw && lastClose> lips)// условие выставления ордеров БАЙ
SEND_BUY();// вынесем "модуль" выставления ордера бай - добавить внизуif((OrderSelect( ticketsell, SELECT_BY_TICKET, MODE_TRADES)==false||OrderCloseTime()>0)&& jaw> lips && lastClose< jaw)// условие выставления ордеров СЕЛЛ
SEND_SELL();// вынесем "модуль" выставления ордера сэлл - добавить внизуif(OrdersTotal()>=1){if(OrderSelect(0, SELECT_BY_POS, MODE_TRADES)){if(OrderType()==OP_BUY){if(( lips== jaw || lips== teen)&& lastClose== lips)// условия закрытия сделки БАЙwhile(OrdersTotal()>0){
CloseDirect(0,"Принудительное закрытие сделки при обратном движении рынка, ticket=");}}if(OrderType()==OP_SELL){if(( jaw== lips || jaw== teen)&& lastClose== jaw)// условия закрытия сделки СЕЛЛwhile(OrdersTotal()>0){
CloseDirect(0,"Принудительное закрытие сделки при обратном движении рынка, ticket=");}}}else{Print("ОШИБКА в Start()(блок закрытия при обратном движении) :OrderSelect() - ",GetLastError());return(-1);}}return(0);}// "модуль" выставления ордера байvoid SEND_BUY(){double sl_buy;if(! SL){
sl_buy=0;}else{
sl_buy=Ask- SL*Point;}
ticketbuy=OrderSend(Symbol(),OP_BUY, Lots1,Ask, slippage, sl_buy,Ask+ TP*Point,"take_trend", MagicNumber1,0,Blue);if( ticketbuy ==-1){Alert(Symbol(),"ошибка:бай",GetLastError());return(-1);}if( ticketbuy >1)Alert(Symbol(),"бай - ок !");}// "модуль" выставления ордера сэллvoid SEND_SELL(){double sl_sell;if(! SL){
sl_sell=0;}else{
sl_sell=Bid+ SL*Point;}
ticketsell=OrderSend(Symbol(),OP_SELL, Lots1,Bid, slippage, sl_sell,Bid- TP*Point,"take_trend", MagicNumber2,0,Red);if( ticketsell ==-1){Alert(Symbol(),"ошибка:сэлл",GetLastError());return(-1);}if( ticketsell >1)Alert(Symbol(),"сэлл - ок !");}// МОДУЛЬ ЗАКРЫТИЯ СДЕЛОК ПРИ СМЕНЕ ТРЕНДА void CloseDirect(int cntr,string comm){double closeprice;if(OrderSelect( cntr, SELECT_BY_POS, MODE_TRADES)){RefreshRates();if(OrderType()==OP_BUY)
closeprice=Bid;else
closeprice=Ask;if(OrderClose(OrderTicket(),OrderLots(), closeprice,10,Green)){Print( comm,OrderTicket());}else{Print("ОШИБКА в CloseDirect():OrderClose() - ",GetLastError());}}else{Print("ОШИБКА в CloseDirect():OrderSelect() - ",GetLastError());}}
Se sei preoccupato di dormire troppo, cambia questa linea
\ se ( WarningMode>0 ) PlaySound(soundfile); \
indicatore a questo
\ se ( WarningMode>0 && shift==0) GlobalVariableSet("Alarm",1); \
e creare un indicatore come questo
E quando ti addormenti non solo imposti l'indicatore principale ma anche la sveglia.
La sveglia può essere disattivata manualmente cambiando il valore 0 nella variabile Sveglia tramite il tasto F3.
A cosa ti serve? Dimmi di più, forse c'è una soluzione, e tu non sai come fare le domande giuste perché la gente capisca.
Ho due soluzioni per quello che hai scritto, ci vorrebbe troppo tempo per scriverne due in una volta :)
..
A proposito, è meglio allegare codici così lunghi come un file.
E per il codice c'è un pulsante speciale SRC
Sì, mi serve per non perdere il segnale). Una volta che solo un allarme scatta, è facile non vederlo, soprattutto di notte(((( Cosa significa - allarme?? Cosa succederà?
Ho cambiato la linea... Ho creato un nuovo indicatore Alarm..... ma non capisco... funziona sempre indipendentemente dal fatto che l'indicatore emetta o meno un segnale... Anche se non c'è nessun segnale dall'indicatore, la sveglia suona continuamente)))) Non c'è nessun segnale, ma la sveglia funziona...
Ne ho bisogno per non perdere il segnale)) Suona solo un allarme una volta, facile da perdere soprattutto di notte(((( E cosa significa - allarme??? Cosa succederà?
Cambia la linea nel tuo indicatore come descritto sopra.
Compila ed esegui l'indicatore allegato.
Suonerà ad ogni tick, finché non disabiliterete l'indicatore o resetterete la variabile globale "Alarm".
Consulente esperto di media mobile .
Ho inserito delle funzioni KimIV per aprire un ordine (GetSizeLot() OpenPosition CorrectTF(int TimeFrame=0) GetNameOP(int op) ModifyOrder() ExistPositions() Message()). Non aveva ancora raggiunto la chiusura. Ho creato la propria funzione di dati dell'indicatore void Indicat_Var(), per avere i dati dell'indicatore in un posto e per utilizzarli in qualsiasi punto del programma.
Quando si accede con la funzione CheckForOpen() a Indicat_Var() tutto va bene, ma quando si accede con la funzione CheckForClose() a Indicat_Var() gli ordini non vengono chiusi, non capisco perché
Penso anche che le funzioni CalculateCurrentOrders(string symbol) e ExistPositions() si duplichino a vicenda.
Per favore aiutatemi a capire
La funzione di calcolo dei lotti era originariamente fornita nell'EA. Se ne hai aggiunto un altro (GetSizeLot()), allora (almeno) rimuovi quello originale - LotsOptimized()
//------------------------------------------------
Infatti. Le funzioni che determinano la presenza di posizioni aperte si duplicano a vicenda.
Uno di loro può essere rimosso. (Impara come differiscono, e quale ti serve di più!)
//--------------------------------------------
Vedere https://www.mql5.com/ru/articles/1385
Lì, proprio lì, c'è una modifica di questo EA con commenti russi nel codice.
Modifica, - Esattamente, per chiusura.
Segniamo i PUNTI APERTO e CHIUSO sul grafico?
Domanda ai professionisti - esiste un tale indicatore o script,
che disegna i punti di apertura e di chiusura sul grafico?
di un ordine? Li collega con una linea,
Quello rosso è una perdita. Utile per analizzare gli errori sulla storia!
Credo che questa domanda le sia già stata posta.
Puoi trascinare un trade direttamente dalla cronologia del conto al relativo grafico con il tuo mouse.
E otterrete quello che state cercando.
Ho visto la sceneggiatura da qualche parte. Credo che I.Kim avesse un simile copione.
http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=32
Chiedere aiuto agli intenditori sul Cursore con un prezzo,
Grazie!
Per favore, aiutatemi a capire perché i miei ordini aperti non si chiudono quando il trend cambia (condizioni aperte). E come posso risolvere questo errore!
Il codice è così per me:
Potete dirmi per favore come ottenere un segnale da un rsi lisciato? (MA => RSI).