Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 788

 

buona giornata!!! amici! compagni! rispetto a voi professionisti!!!

Ho bisogno di aiuto!!! ho gli occhi gonfi, mi fa male la testa, non posso prescriverlo quindi il mio EA ha spostato lo StopLoss ai punti specificati in profitto al prezzo attuale!

Cioè, quando il prezzo si è spostato in un determinato punto, lo StopLoss si è spostato lì!!!

il mio esempio non si adatta.

#define  MagicNumber  123

////extern double TakeProfit   = 50; //Тейкпрофит ордера
extern double StopLoss     = 50; //Стоплосс ордера  
extern int    Delta        = 100;  //Расстояние от цены для установки ордера
extern int    Expiration   = 100;    //Время истечения ордера
extern double Lot          = 0.01;    //Объём позиции
extern int    TrailingLevel = 200;   //уровень
extern int    TrailingStep  = 200;


int            last_bar       = 0;
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start(){

for (int i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

           if (OrderType() == OP_BUY) { 
 if ((OrderStopLoss() < (Bid - TrailingLevel * Point - TrailingStep * Point)) || (OrderStopLoss() == 0)) { // 2
          bool res=OrderModify(OrderTicket(),OrderOpenPrice(),(Bid - TrailingLevel * Point),OrderTakeProfit(),0,Green);   
}
}
}
  
 datetime expiration = TimeCurrent()+3600*Expiration; /// время окончания  
   double BUYLIMITPrice=Ask-Delta*Point; /// это пункты BUYLIMIT

 if (last_bar == Bars) return(0) ;
  last_bar = Bars;
   if (OrdersTotal() == 0)
     {
int ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lot, BUYLIMITPrice,0, BUYLIMITPrice-StopLoss*Point,0 ,"",MagicNumber,expiration,clrNONE);/// это BUYLIMIT
}
 
//----
  return(0) ; 
 } 
  
  
//-- ------------------------------------------------------------------


 
Rita:

Buon pomeriggio.

Si prega di avvisare. Sto aprendo una posizione:

Come posso impostare il commento di posizione per visualizzare il valoreMagic dopo il numero della parola?

Cioè in questo caso: Numero 20781

Puoi anche fare così:

   int mag=111222333;
   string str="Сложение строки и числа ";
   str=str+mag;
   Alert(str);

Quando si aggiungono variabili di tipo diverso, il risultato viene convertito nel tipo di variabile con la priorità più alta. La stringa ha una priorità più alta dell'int

 
TarasBY:
Avete il tempo OrderCloseTime() per chiudere la posizione perdente. Da esso si può leggere il tempo attraverso TimeCurrent() - OrderCloseTime(). O in barre usando iBarShift (NULL, 0, OrderCloseTime()).

Grazie!
 
Ciao, puoi dirmi se è possibile chiamare un indicatore standard (ad esempio MA) da un EA in modo che possa essere visualizzato sul grafico? Non ho bisogno del suo valore in un certo punto, è comprensibile, ma esattamente dovrebbe essere disegnato sul grafico? Grazie
 
alxm:
Ciao, puoi dirmi se è possibile chiamare un indicatore standard (ad esempio MA) da un EA in modo che possa essere visualizzato sul grafico? Non ho bisogno del suo valore in un certo punto, è comprensibile, ma esattamente dovrebbe essere disegnato sul grafico? Grazie

Si può, solo con API, e solo con parametri predefiniti.
O la biblioteca di Vadim Zhunko. Cosa è più vicino a te? L'essenza è la stessa - devi implementare il passaggio dei parametri dall'EA all'indicatore.

Biblioteca.

 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 // 7. ФУНКЦИИ ДЛЯ УПРАВЛЕНИЯ ПРОГРАММАМИ MQL4.
 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 // 7.1. Функция удаляет эксперт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeleteExpert(int hwndChart); // Системный дескриптор окна графика, удаляемого эксперта.
 //===============================================================================================================================================
 // 7.2. ФУНКЦИЯ удаляет индикаторы по имени из списка загруженных индикаторов.
 void ServiceDeleteIndicatorsByName(int     hwndChart,         // Системный дескриптор окна, куда прикреплен индикатор.
                                    int     nWindow,           // Номер подокна для удаления индикаторов. Если -1, то удаляются индикаторы из всех подокон.
                                    string &asIndicatorName[], // Одномерный массив с именами удаляемых индикаторов.
                                    int     nNumberName);      // Количество имён индикаторов в массиве.
 //===============================================================================================================================================
 // 7.3. Функция удаляет скрипт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeleteScript(int hwndChart); // Системный дескриптор окна графика, удаляемого скрипта.
 //===============================================================================================================================================
 // 7.4. Функция управляет диалоговым окном завершения скрипта и возвращает системный дескриптор диалогового окна завершения скрипта, если окно есть,
 //      иначе - NULL. Функция работает только с русской и английской локализациями.
 int ServiceDialogScript(int bInstruction); // Команда для диалогового окна завершения скрипта: TRUE - завершить скрипт, FALSE - не завершать скрипт.
 //===============================================================================================================================================
 // 7.5. Функция получает имена индикаторов из списка загруженных индикаторов.
 //      В случае успеха функция возвращает количество индикаторов в указанных подокнах параметром "nWindow", иначе ноль.
 int ServiceGetNamesIndicators(int     hwndChart,         // Системный дескриптор окна, куда прикреплен индикатор.
                               int     nWindow,           // Номер подграфика. Если -1, то считываются имена индикаторов из всех подокон.
                               string &asIndicatorName[], // Одномерный строковый массив для приёма имён индикаторов.
                                                          // Массив должен быть инициализирован разными значениями в каждой ячейке!
                                                          // Это особенность инициализации строковых массивов в MQL4.
                               int     nNumberName);      // Размер массива "asIndicatorName[]" для приёма имён индикаторов.
 //===============================================================================================================================================
 // 7.6. Функция возвращает TRUE, если окно свойств эксперта открыто, иначе - FALSE.
 bool ServiceIsPropertiesExpert(string sNameExpert); // Имя эксперта, для которого контроллируется открытие окна.
 //===============================================================================================================================================
 // 7.7. Функция открывает окно списка индикаторов. Функция ожидает открытия окна в течении 2,5 секунд. Если окно не появилось в течении этого времени,
 //      функция возвращает FALSE.
 bool ServiceListIndicators(int hwndChart); // Системный дескриптор окна графика, на котором вызывается окно списка индикаторов.
 //===============================================================================================================================================
 // 7.8. Функция загружает на указанный график пользовательский индикатор по его имени.
 void ServiceLoadCustomIndicator(int    hwndChart,      // Системный дескриптор окна графика, куда загружается индикатор.
                                 string sNameIndicator, // Имя загружаемого индикатора.
                                 int    bOK);           // Подтверждение запуска индикатора, при наличии диалогового окна свойств индикатора.
                                                        // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.9. Функция загружает на указанный график эксперт по его имени.
 void ServiceLoadExpert(int    hwndChart,   // Системный дескриптор окна графика, куда загружается эксперт.
                        string sNameExpert, // Имя загружаемого эксперта.
                        int    bOK);        // Подтверждение запуска эксперта, при наличии диалогового окна свойств эксперта.
                                            // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.10. Функция загружает на указанный график скрипт по его имени.
 void ServiceLoadScript(int    hwndChart,   // Системный дескриптор окна графика, куда загружается скрипт.
                        string sNameScript, // Имя загружаемого скрипта.
                        int    bOK);        // Подтверждение запуска скрипта, при наличии диалогового окна свойств скрипта. Скрипт может не иметь окна свойств!
                                            // При использовании функции для загрузки скрипта из скрипта на текущем графике параметр не работает из-за
                                            // невозможности одновременной работы двух скриптов на одном графике.
                                            // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.11. Функция загружает на указанный график стандартный индикатор по его имени.
 void ServiceLoadStdIndicator(int    hwndChart,      // Системный дескриптор окна графика, куда загружается индикатор.
                              string sNameIndicator, // Имя загружаемого индикатора.
                              int    bOK);           // Подтверждение запуска индикатора, при наличии диалогового окна свойств индикатора.
                                                     // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 
logut:

buona giornata!!! amici! compagni! rispetto a voi professionisti!!!

Ho bisogno di aiuto!!! ho gli occhi gonfi, mi fa male la testa, non posso prescriverlo quindi il mio EA ha spostato lo StopLoss ai punti specificati in profitto al prezzo attuale!

Cioè, quando il prezzo si è spostato in un determinato punto, lo StopLoss si è spostato lì!!!

il mio esempio non si adatta.

Cosa c'è che non va?

 
ALXIMIKS:

Può, solo con API, e solo con parametri predefiniti.
O la biblioteca di Vadim Zhunko. Ciò che è più vicino a voi. L'idea è la stessa - devi implementare il passaggio dei parametri dall'EA all'indicatore.

Cioè, usare i mezzi standard non funzionerà. Grazie!
 
alxm:
Cioè non funzionerà con i mezzi standard. Grazie!
Possiamo usare gli oggetti per costruire
 

Brava gente!!!

Aiutatemi a trovare un bug. Sto imparando gli array.

Ho creato un array in un file include.

Ho messo un riferimento al file include nel mio Expert Advisor.

Non riesco a capire perché.

Nei codici di errore del link di posizione del file

http://clip2net.com/s/jkTd89

double mass[]={
1.38890,
1.40510,
1.40980,
1.41340,
2.07850};
#include <ВКЛ.ФАЙЛ.mqh>
int ot ;
int ht ;
double X ;
double X1 ;
double X2 ;

int start()     
{
ot = OrdersTotal();     
double value = Bid;
int S = ArrayBsearch(mass,  value, WHOLE_ARRAY,  0, MODE_ASCEND);
if (ot==0)
if(Bid == mass[S])
OrderSend(Symbol(),OP_SELL,0.1,Bid ,3,Ask+1000*Point,Ask-300*Point,"jfh",123 );

return;
}

Grazie.

 
solnce600:

Brava gente!!!

Aiutatemi a trovare un bug. Sto imparando gli array.

Ho creato un array in un file include.

Ho messo un riferimento al file include nel mio Expert Advisor.

Non riesco a capire perché.

Nei codici di errore del link della posizione del file

http://clip2net.com/s/jkTd89

Grazie.

Sulla prima riga c'era un messaggio che il compilatore non riusciva a trovare il file da includere
Motivazione: