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

 
belck:

Ich möchte auf diese Weise einen Take Profit setzen:

if (TakeProfit<10*Point) TakeProfit=10*Point;
Die Indikatorlinie ändert ihre Position nach einer bestimmten Zeit. Wie kann ich sicherstellen, dass sich der Take Profit nicht ändert, sondern so bleibt, wie er beim Öffnen eingestellt war?
Ich kann kaum erraten, warum Sie TP berechnen. TP wird in der Regel im Moment der Auftragserteilung berechnet - dann wird er dem Auftrag zugewiesen und Sie müssen ihn mit OrderModify() ändern, manchmal ist TP virtuell, in diesem Fall müssen Sie ihn im Array speichern
 
IgorM:
Ich kann nicht einmal erraten, warum Sie TP berechnen. Normalerweise wird TP zum Zeitpunkt der Auftragserteilung berechnet - dann wird es dem Auftrag zugewiesen und Sie müssen es mit OrderModify() ändern, manchmal ist TP virtuell, dann speichern Sie es in einem Array

Danke für den Hinweis.

 

Ich habe gerade einen EA erstellt, ich trainiere weiter, alles wird jedes Mal schneller, aber es wird nicht gehandelt!

Wenn Sie können, beraten Sie bitte, ich denke, ich werde in Kontakt sein.

//+------------------------------------------------------------------+
//| Dimon's Borders .mq4 |
//| Copyright © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+------------------------------------------------------------------+
extern int BandsPeriod=20,i=1 ;extern int BandsShift=0;
extern double BandsDeviations=2.0;
extern double Lots=0.1,TakeProfit=50,stoploss=10;
int init()
{int Durchschnitt;
//----

//----
zurück(0);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
zurück(0);
}
//+------------------------------------------------------------------+
//| Expertenstartfunktion |
//+------------------------------------------------------------------+
int start()
{double Durchschnitt,Obere Grenze,Untere Grenze,newres,Summe,Abweichung;

Average=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i);
//----
newres=Close[i]-Average;
sum=newres*newres;


Abweichung=BänderAbweichungen*MathSqrt(Summe/BänderZeitraum);
Obere Grenze=Durchschnitt+Abweichung;
Untere Grenze=Durchschnitt+Abweichung;
//----
if (Obere Grenze<Close[i])
{ Comment(" Boje! ",Obere Grenze );
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample",16384,0,Green);

}


if (Untere Grenze>Schluss[i])
{ Comment(" Verkaufen! ",Untere Umrandung );

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red);
}
zurück(0);
}
//+------------------------------------------------------------------+

Ich entschuldige mich für die nicht-englischen Variablen, es fällt mir viel leichter, mich zu erinnern, was zu tun ist.

 
VOLDEMAR:
Hallo! Ich kann nicht herausfinden, was mit ???? los ist. Ändert keine Marktorder
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // Berechnung des Stops für Kaufpositionen//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); //Berechnung des Gewinns für Kaufpositionen//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits); //Berechnung des Stops für Verkaufspositionen//
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits);

//================================================== ==================//
int total=OrdersTotal();
int n=0;
for (int i=Gesamt-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(AuftragsSymbol()==Symbol())
{
n++;
}}}
wenn ( Gesamt == 1 )
{
for (int k=gesamte-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET))
Alert("Auftrag existiert", k);
{
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("Fehler", GetLastError());

}}}}
return(0);}

WAS IST DAS PROBLEM BITTE HELFEN ...........?????

können Sie es trotzdem so versuchen:

double TakeProfitBuy = NormalizeDouble((three - zero) / 4, Digits);
if (TakeProfitBuy<10*Point) TakeProfitBuy=10*Point;
double TakeProfitSell = NormalizeDouble((zero - two) / 4, Digits);
if (TakeProfitSell<25*Point) TakeProfitSell=25*Point;
 

Was ist der beste Weg?

- im Advisor angeben, mit welchen Paaren und in welchem Zeitraum gehandelt werden soll

oder

- einen EA auf ein Diagramm eines Währungspaares mit dem erforderlichen voreingestellten Zeitrahmen werfen

??

 

Nur noch eins - bitte nicht schlau sein, ich schreibe im Voraus, sonst ist es nicht sehr angenehm.

Die Antwort auf diese Frage ist für mich sehr wichtig, also nehmen Sie sie bitte ernst.

 
Meiner Meinung nach ist die zweite Option viel praktischer und bequemer.
 

Sich zu entscheiden und sich für eine bestimmte Lösung zu entscheiden.

Ich neige auch zu der Idee, einfach einen EA auf die gewünschten Währungspaare zu werfen, oder einen für bestimmte Währungspaare zu schreiben.

Ich neige auch zu der Option, es einfach überzuwerfen.

Für mich mag es ein anderer Ansatz sein, aber ich möchte ihn nicht zum Besseren verändern.

 
Ich hab's. Sehr clever. Ich bin kein Experte, aber die zweite Möglichkeit ist viel einfacher.
 
Bitte helfen Sie mir: Der Expert Advisor funktioniert nicht, es wird nicht gehandelt.