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

 
VOLDEMAR:

Ich bekomme das Design nicht auf die Reihe

Es flucht ständig über

Am Tag muss ich den Index bekommen


ENUM_DAY_OF_WEEK vom Typ int.
 
evillive:
ENUM_DAY_OF_WEEK ist vom Typ int.
Ich habe sowohl int als auch string und double ausprobiert
 
evillive:
Sie können dies nicht manuell tun, das Terminal zeichnet diese Symbole nur, wenn Sie mit dem Programm handeln. Alternativ können Sie den manuellen Handelsverlauf in den Chart kopieren, wobei alle Trades markiert werden.

Und wenn Sie die Farbe jedes offenen Auftrags auf diese Weise ändern, wird der Handel dann auf dem Diagramm angezeigt?

int i2;  

    for (i2=OrdersTotal()-1; i2>=0; i--){

    if (OrderSelect(i2, SELECT_BY_POS, MODE_TRADES)){

      if (OrderSymbol()==Symbol()){  

       if (OrderType()==OP_SELL){

        c=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),0,Red);

       }

       if (OrderType()==OP_BUY){   

        c=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),0,Green);

       }

      }

     }

    }

   }

 

Beschlossen, den Saldo als Indikator bei der Ausführung der Visualisierung anzuzeigen

Balance=AccountBalance();
double price=iCustom(NULL,0,"AccountBalance",Balance,0,1);

aus dem Indikator:

#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1  Blue       
//--- input parameters
//--- buffers
extern double       Balance=3;
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorBuffers(1);
   SetIndexBuffer(0,ExtMapBuffer1);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted(),
   i,limit1;
   limit1=Bars-counted_bars-1;

   for(i=limit1;i>=0;i--)ExtMapBuffer1[i]=Balance;
   
   return(0);
  }
//+------------------------------------------------------------------+

Und sie wird zu oft aufgerufen.) Dann wird der Bildschirm weiß. Die Frage ist rhetorisch: Was ist los?

 
Forexman77:

Beschlossen, den Saldo als Indikator bei der Ausführung der Visualisierung anzuzeigen

aus dem Indikator:

Und sie wird zu oft aufgerufen.) Dann wird der Bildschirm weiß. Die Frage ist rhetorisch: Was ist falsch?

bool balans;

string balans_S;

///////////////////////////////////////////////////////////////////////////////////////////////////
balans_S=DoubleToStr(AccountBalance(),2)+""+AccountCurrency();
balans=ObjectCreate("Balance", OBJ_LABEL, 0, 0, 0);
balans=ObjectSetText("Balance",balans_S, 14, "Arial", Orange);
balans=ObjectSet("Balance", OBJPROP_CORNER, 1);
balans=ObjectSet("Balance", OBJPROP_XDISTANCE, 20);
balans=ObjectSet("Balance", OBJPROP_YDISTANCE, 20);

///////////////////////////////////////////////////////////////////////////////////////////////////

Fügen Sie diesen Code in Ihren Expert Advisor ein und das Glück kann Ihnen hold sein

 
woin2110:

bool balans;

string balans_S;

///////////////////////////////////////////////////////////////////////////////////////////////////
balans_S=DoubleToStr(AccountBalance(),2)+""+AccountCurrency();
balans=ObjectCreate("Balance", OBJ_LABEL, 0, 0, 0);
balans=ObjectSetText("Balance",balans_S, 14, "Arial", Orange);
balans=ObjectSet("Balance", OBJPROP_CORNER, 1);
balans=ObjectSet("Balance", OBJPROP_XDISTANCE, 20);
balans=ObjectSet("Balance", OBJPROP_YDISTANCE, 20);

///////////////////////////////////////////////////////////////////////////////////////////////////

Fügen Sie diesen Code in Ihren Expert Advisor ein, und das Glück kann Ihnen hold sein

Ich danke Ihnen. Ich möchte aber, dass der Saldo als Linie über den gesamten Bereich des Diagramms angezeigt wird.
 
evillive:
Seltsam, bei mir funktioniert es. Vielleicht gibt es Fehler in der Protokolldatei?

Ich habe es herausgefunden, ich habe die Vorlage fälschlicherweise unter dem Namen Debug.tpl mit dem angeschlossenen Experten gespeichert, daher gab es eine zusätzliche Anweisung am Ende der Vorlagendatei:

<expert>
name=ProbaExpert
flags=275
window_num=0
<inputs>
StrPeriod_Direct=
Pips=50
</inputs>
</expert>

Gespeicherte Vorlage ohne Experte, alles funktioniert, danke.

 
for(int i=0;i<OrdersHistoryTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {  
         if(OrderType()==OP_SELL)
          {  
           if(OrderStopLoss()>OrderOpenPrice())
            {                     
              if(OrdersTotal() == 0)
              {              
               double SELLprice=Bid;  
               int ticket =OrderSend(Symbol(), OP_SELL,Lot*=2,SELLprice, 3,SELLprice+StopLoss* Point, 0, "", MagicNumber,0, clrNONE);
                 
              }
            }            
          }              
        }
     }     

Bitte beraten Sie mich, ich möchte meinen Code zu machen, um LOT im Falle eines Verlustes Handel zu erhöhen, und im Falle eines Gewinns LOT wieder auf das ursprüngliche Volumen!

 

Um den Saldo als Linie in der Visualisierung anzuzeigen, habe ich den Code aus dem Artikel übernommen.

In der EA:

// сохранение последнего значения баланса в гл. переменную
   GlobalVariableSet( "vGrafBalance", AccountBalance() );

Im Indikator:

#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1 Blue
 
double balance[];
 
int init()
{
    IndicatorShortName( "vGrafBalance" );
    IndicatorDigits( 2 );
 
    SetIndexStyle( 0, DRAW_LINE );
    SetIndexBuffer( 0, balance );
    SetIndexLabel( 0, "Balance" );
}
int start()
{
    balance[0] = GlobalVariableGet( "vGrafBalance" );
    return(0);
}

Die Zeile wird nicht angezeigt. Am Ende steht nur noch ein Wert auf dem letzten Nullbalken im Puffer.

 
Forexman77:

Um den Saldo als Linie in der Visualisierung anzuzeigen, habe ich den Code aus dem Artikel übernommen.

In der EA:

Im Indikator:

Die Zeile wird nicht angezeigt. Am Ende steht nur noch ein Wert auf dem letzten Nullbalken im Puffer.

Um alle Balken anzuzeigen, müssen Sie alle Balken zählen, wie es bei Indikatoren üblich ist.