[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 298
Das Archiv enthält zwei Indikatoren und Expert Advisor Ich arbeite an (test-cifr), Indikatoren arbeiten von selbst, aber ich kann nicht fügen Sie sie in Expert Advisor (der einzige Zweck der Expert Advisor ist die Ausgabe von Werten), bitte helfen Sie mir zu verstehen, warum sie nicht sind und wie man sie einfügen.
Wie kann ich auf dem Chart die Inschrift auf dem aktuellen Instrument Gewinn/Verlust der offenen Aufträge anzeigen.
Es ist schwierig, im Expert Advisor zu überprüfen, ob er Positionen eröffnet hat oder nicht (Terminal an/aus) und das letzte Lotvolumen vor dem Schließen des Terminals zu erfassen.
//+------------------------------------------------------------------+//| Xrust.mq4 |//| Copyright 2013, MetaQuotes Software Corp. |//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright "Copyright 2013, MetaQuotes Software Corp."#property link "http://www.metaquotes.net"externint TimeFrame=0;//Если=0, то текушийexternstring FrApNam="Ap";//Имя линии соотв.Фракталу вверхexternstring FrDnNam="Dn";//Имя линии соотв.Фракталу внизexterncolor ClAp=Blue;//Цвет линии соотв.Фракталу вверхexterncolor ClDn=Red;//Цвет линии соотв.Фракталу вниз//-----------------------------------------------------------------------------+double FrApPrise,FrDnPrise;
//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init()
{
//----if(TimeFrame==0){TimeFrame=Period();}
IndicatorShortName("Factal_Level_Xrust"+TimeFrame);
FrApNam=StringConcatenate(FrApNam,TimeFrame);
FrDnNam=StringConcatenate(FrDnNam,TimeFrame);
//----return(0);
}
//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----ObjectDelete(FrDnNam);
ObjectDelete(FrApNam);
Comment(" ");
//----return(0);
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
//----
LineAp();
LineDn();
int diap=MathRound((FrApPrise-FrDnPrise)/Point);
Comment("\n"," LineDn = ",FrDnPrise,
"\n", " LineAp = ",FrApPrise,
"\n"," diap = ",diap );
//----return(0);
}
//+------------------------------------------------------------------+//-----------------------------------------------------------------------------+// Ищет горизонтальную линию по имени перерисовывает если изменилась цена | //-----------------------------------------------------------------------------+void LineDn(){
FrDnPrise=0;
double FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
//Comment(FrPrise);if(ObjectFind(FrDnNam)==0){
if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrDnPrise=FrPrise;
ObjectDelete(FrDnNam);
SetHLine(ClDn,FrDnNam,FrDnPrise,0,1);
WindowRedraw();
return;}
//-----------------------------------------------------------------------------+// Ищет горизонтальную линию по имени перерисовывает если изменилась цена | //-----------------------------------------------------------------------------+void LineAp(){
FrApPrise=0;
double FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
if(ObjectFind(FrApNam)==0){
if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrApPrise=FrPrise;
ObjectDelete(FrApNam);
SetHLine(ClAp,FrApNam,FrApPrise,0,1);
WindowRedraw();
return;}
//-----------------------------------------------------------------------------+ // Киму Респект и уважуха !!! | //+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 07.10.2006 |//| Описание : Поиск ближайшего фрактала. Возвращает ценовой уровень. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий ТФ) |//| mode - тип фрактала (MODE_LOWER|MODE_UPPER) |//+----------------------------------------------------------------------------+double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
if (sy=="" || sy=="0") sy=Symbol();
double f=0;
int d=MarketInfo(sy, MODE_DIGITS), s;
if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2;
for (s=2; s<100; s++) {
f=iFractals(sy, tf, mode, s);
if (f!=0) return(NormalizeDouble(f, d));
}
Print("FindNearFractal(): Фрактал не найден");
return(0);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 30.03.2008 |//| Описание : Установка объекта OBJ_HLINE горизонтальная линия |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ("" - время открытия текущего бара) |//| p1 - ценовой уровень (0 - Bid) |//| st - стиль линии (0 - простая линия) |//| wd - ширина линии (0 - по умолчанию) |//+----------------------------------------------------------------------------+void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
if (nm=="") nm=DoubleToStr(Time[0], 0);
if (p1<=0) p1=Bid;
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
ObjectSet(nm, OBJPROP_PRICE1, p1);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_STYLE , st);
ObjectSet(nm, OBJPROP_WIDTH , wd);
}
oder
oder Funktionen verwenden
intObjectFind( string name) //Поиск объекта с указанным именемdouble ObjectGet( string name, int prop_id) //Функция возвращает значение указанного свойства объекта
um nach einem Objekt zu suchen. Es gibt keinen anderen Weg.
Vielen Dank und viel Glück für Sie artmedia70
Hallo.
Wie kann ich auf dem Chart die Inschrift auf dem aktuellen Instrument Gewinn/Verlust der offenen Aufträge anzeigen.
Es ist schwierig, im Expert Advisor zu überprüfen, ob er Positionen eröffnet hat oder nicht (Terminal an/aus) und das letzte Lotvolumen vor dem Schließen des Terminals zu erfassen.
Ich danke Ihnen.
Hallo, niemand, der Bescheid weiß?
Wenn ich in der Vergangenheit Geschäfte getätigt habe, verwende ich die Funktion orderprofit und addiere dann die gesamte Historie der Geschäfte.
Ich frage mich, ob jemand eine Antwort auf meine Frage hat.
Dieser Kodex weist einen Fehler auf. Hier, aus dem Zusammenhang gerissen:
Der springende Punkt ist, dass der Ausdruck
Daher wird der Wert der Partie auf eine Dezimalstelle gerundet.
Lesen Sie weiter, vielleicht hilft das.
Das hoffe ich sehr. Ich danke Ihnen. Ich werde den obigen Thread durchlesen, um diesen Punkt zu bekräftigen. Wir wollen keine Lücken hinterlassen.
Hallo, gibt es jemanden, der sich auskennt?
Nun, so wie ich es verstehe, ist alles elementar. Alles, was Sie brauchen, ist Grundwissen.
1. Sie führen eine Überschreitung der Aufträge durch.
2. Prüfen Sie, ob der Auftrag offen ist, d.h. ob die Auftragsschlusszeit relativ zu Null ist.
3. wenn der Auftrag offen ist, zeigen Sie die benötigten Daten, den Gewinn, den Typ, usw. an.
Wenn ich in der Vergangenheit Geschäfte getätigt habe, verwende ich die Funktion orderprofit und addiere dann den gesamten Verlauf der Geschäfte.
Ich frage mich, ob jemand Antworten auf meine Frage hat.
Kopieren Sie den gesamten Code in Ihren Expert Advisor
wie diese
oder
oder Funktionen verwenden
um nach einem Objekt zu suchen. Es gibt keinen anderen Weg.Nein, es funktioniert, aber der Wert kommt von der Decke
Versuchen Sie, die Indikatoreinstellungen im EA-Code zu entfernen. Die Einstellungen werden dann aus dem im Indikator vorgegebenen Code übernommen.
Ich habe auch linke Werte, ich habe die Einstellungen aus dem Code entfernt und es ist OK.