[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 261

 
BaceK1 >> :
Wie kann ich eine Position zu einem bestimmten Zeitpunkt eröffnen? Ich muss zum Beispiel um 00.15 Uhr Ortszeit eine Position eröffnen.

if (hour == 0 && minute==15) {dann dies tun;}

Schauen Sie sich Expert Advisor an, dort fehlen einige (und einige unnötige) Klammern:

//+------------------------------------------------------------------+
//|                                                   Полуночник.mq4 |
//|                                                            BaceK |
//+------------------------------------------------------------------+
#property copyright "BaceK"
#property link ""
//---- input parameters
extern int Dist_SL=20;
extern int Dist_TP=30;
extern double Prots=0.35;
int start()
{
string Symb=Symbol(); // Финанс. инструмент
int Min_Dist=MarketInfo( Symb,MODE_STOPLEVEL);// Мин. дистанция //Alert("Мин. дистанция = ",Min_Dist);
double Min_Lot=MarketInfo( Symb,MODE_MINLOT);// Мин. размер лота//Alert("Мин. размер лота = ",Min_Lot);
double Free =AccountFreeMargin(); // Свободн средства//Alert("Свободн средства = ",Free);
double One_Lot=MarketInfo( Symb,MODE_MARGINREQUIRED);//Стоим.лота//Alert("Стоим.лота = ",One_Lot);
double Lot=MathFloor(( Free* Prots)/( One_Lot* Min_Lot))* Min_Lot;// Лоты//Alert("Лоты = ",Lot);//Alert("Bars = ",Bars);
//-----------------------------------------------
if( Lot != 0 ) // Проверка свободных срелств                       
 {//Alert("Работа дальше = ",OrderSymbol());
  // Проверка рабочего времени
  int h=TimeHour(TimeCurrent());
  if( h < 1 )
    {for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер
        {if(OrderSelect( i-1, SELECT_BY_POS)==true) // Если есть следующий
           {// Анализ ордеров:
            if(OrderSymbol()!= Symb) // Не наш фин.инструм.
              {//Alert("Работа дальше = ",OrderSymbol());
               // Определение в какую сторону открываться
               if(iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1)< 0)
                 {//Alert("Длинная позиция = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
                  int ticket=OrderSend( Symb,OP_BUY, Lot,Ask,3,Bid- Dist_SL*Point,Bid+ Dist_TP*Point);
                 }
               else
                 {//Alert("Короткая позиция = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
                  int ticket1=OrderSend( Symb,OP_SELL, Lot,Bid,3,Bid+ Dist_SL*Point,Bid- Dist_TP*Point);
                 }
               if( ticket>0 || ticket1>0) // Получилось :)
                 {// Alert ("Установлен ордер SELL ",ticket || ticket1);
                  Sleep(5000);
                 }
               else
                 {int Error=GetLastError(); // Не получилось :(
                  switch( Error) // Преодолимые ошибки
                    {case 129:...................................
                    }
                  switch( Error) // Критические ошибки
                    {case 2 : ...................................
                    }
                  //Alert (GetLastError());
                  return(0);
                 }
              }
            else
              {//Alert("Выход по Symb = ",Symb);
               return(0);
              }
        }//это скобка закрывающая for() почему после неё идёт else ???????? 
      else
        {//Alert("Выход по ордеров нет = ",Symb);
         if(iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1)< 0)
           {//Alert("Длинная позиция = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
            int ticket2=OrderSend( Symb,OP_BUY, Lot,Ask,3,Bid- Dist_SL*Point,Bid+ Dist_TP*Point);
           }
         else{//Alert("Короткая позиция = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
              int ticket3=OrderSend( Symb,OP_SELL, Lot,Bid,3,Bid+ Dist_SL*Point,Bid- Dist_TP*Point);
             }
         if( ticket2>0 || ticket3>0) // Получилось :)
           {Sleep(5000);//Alert ("Установлен ордер SELL ",ticket2 || ticket3);            
           }
         else
           {int Error1=GetLastError(); // Не получилось :(
            switch( Error1) // Преодолимые ошибки
              {case 129:................................
              }
            switch( Error1) // Критические ошибки
              {case 2 : ..........................
              }
            Alert(GetLastError());return(0);
           }
    }
  }
// дальше я не могу отследить что откуда ?????????????????????????????????????????????????????????
//?????????????????????????????????????????????????????????????????????????????????????????????????
}else
{// Alert("Выход по времени = ",Hour());
return(0);
}
}else
{return(0);}//Alert("Выход по Lot = ",Lot);
 return(0); //Alert ("Скрипт закончил работу -----------------------------");
}
//+------------------------------------------------------------------+

Der verdammte Bot lässt es nicht zu, den ganzen Code auszugeben, ich muss ihn ausschneiden. Ich habe switch() gekürzt, damit es passt.

 

Wie kann ich alle verfügbaren Daten in eine Datei in Form dieser Zeilen schreiben?

O;H;L;C;Volumen;MA3;MA5;MA7;MA13; ... und andere Indikatoren weiter

Im H1-Zeitrahmen?

Dankeschön

 
snowman647 >> :

Wie kann ich den gesamten verfügbaren Verlauf in eine Datei in Form dieser Zeichenketten schreiben?

O;H;L;C;Volumen;MA3;MA5;MA7;MA13; ... und andere Indikatoren weiter

Im H1-Zeitrahmen?

Dankeschön




//+------------------------- WritingLineInFile() ----------------------------
//| Дописывание строки в конец файла
//+---------------------------------
void WritingLineInFile(string FlName, string Text){
  int file_handle=FileOpen( FlName, FILE_CSV| FILE_READ| FILE_WRITE, " ");
	if ( file_handle>0){
		FileSeek( file_handle,0, SEEK_END);
		FileWrite( file_handle, Text);
		FileClose( file_handle);
	}
	else{
	  Print("Ошибка ",GetLastError()," - Не удалось открыть файл ", FlName);
   }
}
//--------------------------------------------------------------------------- 

Dies ist ein benutzerdefiniertes Unterprogramm, das eine Textzeile an das Ende der Datei anfügt. Sie wird nach der Startfunktion platziert. Zu Beginn verwenden wir sie wie folgt:

 // --------- Генерируем имя файла ------------
  FileName=Symbol()+"_"+DoubleToStr(Day(),0)+"_"+DoubleToStr(Month(),0)+"_"+DoubleToStr(Year(),0)+".txt";
  TextInFile=TimeToStr(TimeCurrent(), TIME_DATE| TIME_SECONDS);
  TextInFile= TextInFile+" "+DoubleToStr(Bid,Digits);
 

Ich danke Ihnen!

Können Sie mir auch sagen, wie ich einen Rundgang durch die gesamte Geschichte machen kann?

Ich habe eine Datei mit H1-Daten von 1999 bis 2009

 

Planen Sie die Installation eines neuen Betriebssystems nur für den Tester, wer weiß, welches Betriebssystem schnellere Tests hat?

 

Guten Abend.

Erst gestern habe ich MQL5 zum ersten Mal ausprobiert. Ich habe ein Problem mit der Schaltfläche. Bitte geben Sie an, wie man die Koordinaten einer Schaltfläche festlegt, ihre Farbe ändert, den Text einstellt und wie man eine Rückmeldung erhält. Ich habe versucht, die alte Version zu verwenden, bevor die MT5-Version veröffentlicht wurde. Wo kann ich sie lesen? Ich danke Ihnen. :)

 
Patriot писал(а) >>

Guten Abend.

Erst gestern habe ich MQL5 zum ersten Mal ausprobiert. Ich habe ein Problem mit der Schaltfläche. Bitte geben Sie an, wie man die Koordinaten einer Schaltfläche festlegt, ihre Farbe ändert, den Text einstellt und wie man eine Rückmeldung erhält. Ich habe versucht, die alte Version zu verwenden, die vor der Veröffentlichung des MT5 veröffentlicht wurde. Wo kann ich sie lesen? Ich danke Ihnen. :)

Gehen Sie hier... Die Beta-Tests für MetaTrader 5 haben begonnen!

 
DDFedor >> :

Es geht hier lang... Der Beta-Test von MetaTrader 5 hat begonnen!


Ich danke Ihnen vielmals. :)
 
001 писал(а) >>

Planen Sie die Installation eines neuen Betriebssystems nur für den Tester, wer weiß, welches Betriebssystem schnellere Tests hat?

Und wie auch immer, machen Sie bitte keinen neuen Thread dazu auf, ja?

 

XP und das Thema ist abgeschlossen...

)))

Grund der Beschwerde: