Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 788

 

guten tag!!! freunde! kameraden! respekt an euch profis!!!

Ich brauche Hilfe!!! Meine Augen sind geschwollen, mein Kopf schmerzt, ich kann es nicht verschreiben, also hat mein EA den StopLoss auf die angegebenen Punkte im Gewinn zum aktuellen Kurs verschoben!!!

Das heißt, wenn sich der Kurs zu einem bestimmten Punkt bewegt, bewegt sich der StopLoss dorthin!!!

mein Beispiel passt nicht.

#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:

Guten Tag.

Bitte beraten Sie mich. Ich eröffne eine Stelle:

Wie kann ich den Positionskommentar so einstellen, dass derMagic-Wert nach der Wortnummer angezeigt wird?

D.h. in diesem Fall: Nummer 20781

Sie können auch dies tun:

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

Bei der Addition von Variablen unterschiedlichen Typs wird das Ergebnis in den Variablentyp mit der höchsten Priorität umgewandelt. String hat eine höhere Priorität als int

 
TarasBY:
Sie haben die OrderCloseTime() Zeit, um die Verlustposition zu schließen. Daraus können Sie die Zeit durch TimeCurrent() - OrderCloseTime() lesen. Oder in Takten mit iBarShift (NULL, 0, OrderCloseTime()).

Ich danke Ihnen!
 
Hallo, können Sie mir sagen, ob es möglich ist, einen Standard-Indikator (z. B. MA) von einem EA aufrufen und haben es auf dem Chart angezeigt? Ich brauche den Wert nicht an einem bestimmten Punkt, das ist verständlich, aber wie genau soll er im Diagramm eingezeichnet werden? Dankeschön
 
alxm:
Hallo, können Sie mir sagen, ob es möglich ist, einen Standardindikator (z.B. MA) von einem EA aus aufzurufen, damit er auf dem Chart angezeigt werden kann? Ich brauche den Wert nicht an einem bestimmten Punkt, das ist verständlich, aber wie genau soll er im Diagramm eingezeichnet werden? Dankeschön

Das geht nur mit API und nur mit Standardparametern.
Oder die Bibliothek von Vadim Zhunko. Was ist Ihnen näher? Die Essenz ist dieselbe - Sie müssen die Parameterübergabe vom EA an den Indikator implementieren.

Bibliothek.

 //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:

guten tag!!! freunde! kameraden! respekt an euch profis!!!

Ich brauche Hilfe!!! Meine Augen sind geschwollen, mein Kopf schmerzt, ich kann es nicht verschreiben, also hat mein EA den StopLoss auf die angegebenen Punkte im Gewinn zum aktuellen Kurs verschoben!!!

Das heißt, wenn sich der Kurs zu einem bestimmten Punkt bewegt, bewegt sich der StopLoss dorthin!!!

mein Beispiel passt nicht.

Was kann man daran nicht mögen?

 
ALXIMIKS:

Kann, nur mit API, und nur mit Standardparametern.
Oder die Bibliothek von Vadim Zhunko. Was Ihnen am nächsten ist. Die Idee ist die gleiche - Sie müssen die Übergabe von Parametern vom EA an den Indikator implementieren.

D.h. die Verwendung der Standardmittel wird nicht funktionieren. Ich danke Ihnen!
 
alxm:
Das heißt, es wird nicht mit den üblichen Mitteln funktionieren. Ich danke Ihnen!
Wir können Objekte verwenden, um zu bauen
 

Gute Leute!!!

Helfen Sie mir, einen Fehler zu finden. Ich lerne gerade über Arrays.

Ich habe ein Array in einer Include-Datei erstellt.

Ich habe einen Verweis auf die Include-Datei in meinen Expert Advisor eingefügt.

Ich kann nicht verstehen, warum.

Im Dateispeicherort Link Fehlercodes

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;
}

Ich danke Ihnen.

 
solnce600:

Gute Leute!!!

Helfen Sie mir, einen Fehler zu finden. Ich lerne gerade über Arrays.

Ich habe ein Array in einer Include-Datei erstellt.

Ich habe einen Verweis auf die Include-Datei in meinen Expert Advisor eingefügt.

Ich kann nicht verstehen, warum.

Im Dateispeicherort Link Fehlercodes

http://clip2net.com/s/jkTd89

Ich danke Ihnen.

In der ersten Zeile erschien die Meldung, dass der Compiler die einzubindende Datei nicht finden konnte