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

 
sergeev >>:

приведите здесь вашу функцию открытия ордеров.

int NewOrder(int Cmd,double Lot)

{double TP=0, TP2=0;

doppelt SL=0, SL2=0;

double PR=0;

datetime endtime;


while(!IsTradeAllowed()) Schlaf(100);

endtime = TimeCurrent()+4*60*60;


if(Cmd == OP_BUYSTOP)

{

PR=TOP+10*Punkt;

PR=NormalizeDouble(PR,2);

if(TakeProfit>0)

{

TP=PR+25*Punkt;

}

wenn(StopLoss>0)

{

SL=PR-30*Punkt;

SL=NormalizeDouble(SL,2);

}

}

if(Cmd==OP_SELLSTOP)

{

PR=BOT-7*Punkt;

PR=NormalizeDouble(PR,2);

if(TakeProfit>0)

{

TP=PR-25*Punkt;

}

wenn(StopLoss>0)

{

SL=PR+30*Punkt;

SL=NormalizeDouble(SL,2);

}

}

wenn ((TOP-BOT)<115*Punkt)

int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,endtime,CLR_NONE);

sonst

Print("Großer Unterschied zwischen TOR und BOT: ",(TOP-BOT));

if(tic<0) Print("Fehler beim Öffnen der Bestellung: ",GetLastError();


zurück(tic);

 
sanyooooook >>:

а ордер как закрывается? по стоп лосту или функцией OrderClose()

bei Stop Loss oder Take Profit.

 

Hallo zusammen...ich habe eine Frage...wo kann ich einen Transaktionsbericht sehen...insgesamt für den gesamten Zeitraum der Arbeit...?

 
sergeev >>:
В принципе можно искать ордера в истории и отсортировать их, затем узнать два последних закрытия. Но это вам надо пройтись по всем ордерам истории два раза.

используйте OrderHistoryTotal(), MODE_HISTORY, OrderCloseTime()>0, OrderProfit()

Другим вариантом - чтоб не сканировать два раза историю - это запоминание тикетов открывшихся ордеров и потом определения их профита.

Wie genau merkt man sich die Tickets? Und wie ist das zu verstehen: Um auf ein Ticket zuzugreifen, müssen Sie einen Auftrag auswählen, und um ihn auszuwählen, müssen Sie das Ticket kennen...

 
just-me >>:

А как именно запоминать тикеты? И как понимать: чтоб обратиться к тикету - нужно выбрать ордер, а чтоб его выбрать - нужно знать тикет...

Sie müssen das Ticket nicht kennen, um eine Bestellung auszuwählen

 

Ich bin mit der Funktion marketinfo verwirrt und kann den korrekten Spread-Wert für ein Instrument in der Währung des Depots mit einer bestimmten Losgröße nicht berechnen. Können Sie eine korrekte Formel vorschlagen? Ich brauche es sowohl für Spot als auch für CFD...

 

Ich habe eine Frage an Experten - ist es möglich, eine Konstante zu machen, der erste Wert des Preises erhalten, wenn ich den EA starten?

Ich möchte diesen Preis als Konstante speichern, so dass ich die ganze Zeit, in der der EA läuft, auf ihn verweisen kann. Die Frage ist nur, wie man das macht. Denn Ask ändert sich ständig, und ich kann die Kopierfunktion nicht finden.

 

eine globale Variable oder nur eine Variable erstellen

und fügen Sie dies nicht in die Startfunktion, sondern in die Init-Funktion ein

int init()
  {
//----
   GlobalVariableSet("Price_Start",Ask);
//----
   return(0);
  }
 
Kesha_k85 >>:

У меня такой вопрос к спецам - есть ли возможность сделать константой, первое полученное значение цены при запуске советника?

Т.е если я запустил советник и в это время цена Ask=1.4444 Я хочу эту цену сохранить как константу, чтобы всё время работы советника можно было к ней орбащаться. Только вот вопрос, как это сделать??? Ведь Ask постоянно меняеться, а функции копирования я нигде не нашёл.


Eine Variation des Themas.


double Price_Start;

int init()
 {
   Price_Start=Ask;
   return(0);
 }


double Price_Start=0;

int start()
 {
   if ( Price_Start<0.001) Price_Start=Ask;
   //....
 }
 
just-me писал(а) >>

Wie genau merkt man sich die Tickets? Und wie ist das zu verstehen: Um sich auf ein Ticket zu beziehen, müssen Sie einen Auftrag auswählen, und um ihn auszuwählen, müssen Sie das Ticket kennen...

https://docs.mql4.com/ru/trading/OrderSelect - siehe SELECT_BY_POS