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

 
Shniperson >> :
Meine Herren, wie kann man den H4-Handel so gestalten, dass er die H1-Balken berücksichtigt? z.B. if(......&& Close[0](H1 bar)>High[1](H1 bar) ???????????

Verwenden Sie iClose() und iHigh() - Sie können in diesen Funktionen einen beliebigen Zeitrahmen festlegen

 
Ich verstehe nicht, warum die Zuordnung eines Puffers zu einem anderen nicht korrekt ist (das Ergebnis von Puffer1 wird nicht im Indikatorfenster ausgedruckt). Und die zweite Frage: Warum sollte der Indikator den Null-Balken und den vorherigen (Limit=2) berechnen, wenn er nur auf den aktuellen Null-Balken beschränkt werden kann?

#property indicator_separate_window
#property indicator_buffers 1

extern int FastMA=3;
extern int SlowMA=25;

double Buffer1[];


double Buffer2[];

int init()
{
SetIndexBuffer(0,Buffer1);
SetIndexBuffer(1,Buffer2);
return(0);
}

int start()
{
int limit,counted_bars;
counted_bars=IndicatorCounted(); //counted_bars=Bars-1
if(counted_bars>0) counted_bars--; //??? counted_bars=Bars-1-1
limit=Bars-counted_bars; //лимит теперь равен двум
for(int i=0; i<limit; i++){
Buffer2[i]=MathAbs(Close[i]-Open[i]);
}
for(i=0; i<limit; i++){
Buffer1[i]=Buffer2[i]*(-1);
}
}

 
Liebe Programmierer, bitte helfen Sie mir, einen Ton in den Indikator einzufügen, der ertönt, wenn der Indikator den Nullpunkt überschreitet. Ich danke Ihnen!
Dateien:
 
C-4 >> :
Ich kann nicht verstehen, warum die Zuordnung eines Puffers zu einem anderen nicht korrekt ist (das Ergebnis von Puffer1 wird nicht im Anzeigefenster ausgegeben)...

SetIndexStyle(0,DRAW_LINE); fehlt für den Zeichenpuffer, und IndicatorBuffers(2) für den Berechnungspuffer;



 
Bingo! Nun, natürlich IndicatorBuffers(2), ich dachte, die Angabe von SetIndexBuffer sei ausreichend. Übrigens, auch ohne SetIndexStyle(0,DRAW_LINE) erhalte ich eine dünne schwarze Linie - die Standardeinstellungen sind aktiviert.
 

Hallo Experten.

Ich habe einen EA erstellt, der nur offene Aufträge schließt!(halbautomatischer Handel).

Closing Regeln: Die wichtigsten schließen geht auf den Preis Kanal, wenn es bricht 1 Punkt nach oben schließen SHELL,

Wenn 1 Punkt nach unten schließen BAY. aber auch die Versicherung breakeven ein paar Punkte in einem bestimmten Abstand.

Ich habe eine Frage, wenn ich alles richtig gemacht habe, ist der Code richtig!!!?

extern bool check=false; 
extern int PeriodP=12; 
extern double TrailingStop = 35;// расстояние после которого будем устанавливать безубыток
extern double X=5;//установка в + 5 пунктов! 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double P_up0, P_down0, P_up1, P_down1;
   int cnt, total;

  P_up0=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,0,0);
  P_down0=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,1,0);
  P_up1=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,0,1);
  P_down1=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,1,1);

    
   for( cnt=OrdersTotal()-1; cnt>=0; cnt--) {
      OrderSelect( cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&    OrderSymbol()==Symbol())   {
         if(OrderType()==OP_BUY) 
            {
                 OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); 
                 return(0); 
                }
            if( TrailingStop>0)  
              {                  
               if(Bid-OrderOpenPrice()>Point* TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point* TrailingStop && OrderStopLoss()!=OrderOpenPrice()+ X*Point)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ X*Point,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else  
         {
            
            if( P_up1< P_up0) 
            {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); 
               return(0); 
              }
            if( TrailingStop>0)  
              {               
               if((OrderOpenPrice()-Ask)>(Point* TrailingStop))
                 {
                  if(NormalizeDouble(OrderStopLoss(),Digits) != NormalizeDouble(OrderOpenPrice()- X*Point,Digits))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()- X*Point,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
            
           }
        }
     
   if ( check) Order_Open();
   return(0);
  }
//+------------------------------------------------------------------+

void Order_Open(){
   if (OrdersTotal()<=1) {
      OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,"",20080421,0);
      OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"",20080421,0);
   }
}
 
Es gibt keine Bedingung für die Schließung einer Long-Position, der Kaufauftrag wird also trotzdem geschlossen.
Wenn Sie einen Überschuss an Aufträgen haben, müssen Sie RefreshRates() vor oder nach OrderSelect einsetzen.
 
Roger >> :
Keine Bedingung für die Schließung der Long-Position, jetzt wird die BUY-Order trotzdem geschlossen.

Habe den Fehler gefunden. Habe den BUY-Abschluss wirklich vermisst.

zumindest wurde die Kompilierung ohne Fehler abgeschlossen.

extern bool check=false; 
extern int PeriodP=12; 
extern double TrailingStop = 35;// расстояние после которого будем устанавливать безубыток
extern double X=5;//установка в + 5 пунктов! 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double P_up0, P_down0, P_up1, P_down1;
   int cnt, total;

  P_up0=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,0,0);
  P_down0=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,1,0);
  P_up1=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,0,1);
  P_down1=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,1,1);

    
   for( cnt=OrdersTotal()-1; cnt>=0; cnt--) {
      OrderSelect( cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&    OrderSymbol()==Symbol())   {
         if(OrderType()==OP_BUY) {  
            
            if( P_down1> P_down0) {
                 OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); 
                 return(0); 
                }
            if( TrailingStop>0)  
              {                  
               if(Bid-OrderOpenPrice()>Point* TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point* TrailingStop && OrderStopLoss()!=OrderOpenPrice()+ X*Point)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ X*Point,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
            else  
            {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); 
               return(0); 
              }
            if( TrailingStop>0)  
              {               
               if((OrderOpenPrice()-Ask)>(Point* TrailingStop))
                 {
                  if(NormalizeDouble(OrderStopLoss(),Digits) != NormalizeDouble(OrderOpenPrice()- X*Point,Digits))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()- X*Point,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
            
           }
        
     }
   if ( check) Order_Open();
   return(0);
  }
//+------------------------------------------------------------------+

void Order_Open(){
   if (OrdersTotal()<=1) {
      OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,"",20080421,0);
      OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"",20080421,0);
   }
}
 

eine ganz "einfache" Frage: Wie berechnen Sie den Preis für 1 (ein) offenes Indexlos in der Depotwährung?

Beispiel: gestern eröffnete ich 1 Lot nikkei der Preis zum Zeitpunkt der Eröffnung war 9400 Pips. Frage: wie kann ich wissen, wie viel Geld war 9400 (NICHT die Kaution! nämlich der Preis des Lots) in der Kaution Währung zum Zeitpunkt der Eröffnung?

 
jobber писал(а) >>

eine ganz "einfache" Frage: Wie berechnen Sie den Preis für 1 (ein) offenes Indexlos in der Depotwährung?

Beispiel: gestern eröffnete ich 1 Lot nikkei der Preis zum Zeitpunkt der Eröffnung war 9400 Pips. meine Frage ist: wie kann ich wissen, wie viel Geld 9400 war (NICHT die Kaution! nämlich der Preis des Lots) in der Kaution Währung zum Zeitpunkt der Eröffnung?

i>MarketInfo() ist bei diesem Parameter nicht hilfreich.

Grund der Beschwerde: