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

 
ALEX_SPB_RU:

Ich verstehe es immer noch nicht!

Selbst wenn ich ausdrücklich festlege, dass die Suche bei Null beginnen soll, wird das Objekt mit dem Namen ya ya_Prefix_78 gelöscht , da die Funktion die Nummer 4 zurückgibt

Um nach Präfix zu löschen, müssen Sie entweder ==0 angeben oder !

Nichts für ungut, ich lerne gerade erst, deshalb möchte ich alles für mich selbst auspacken.

Nochmals vielen Dank für Ihre Hilfe!

Viel Glück!

Vielleicht habe ich mich nicht klar genug ausgedrückt:

if(StringFind(name, prefix,0) == 0) soll ausschließlich vom Anfang der Zeichenkette aus suchen.

Ich mag keine voreingestellten Parameter, es sei denn, es handelt sich um handgeschriebene Funktionen - da ist die Kontrolle voll ....

Viel Glück!

 
abolk:

Wenn man es einen Mist nennen kann, dann einen Mist. ich würde gerne jemandem helfen, der Hilfe braucht. aber ich weiß aus Erfahrung, wenn jemand zu faul ist, seine eigene Aufgabe auch nur ein bisschen zu verstehen, dann ist Helfen ein totaler Mist...
Warum ist das so? Kann man argumentieren, dass es für eine kompetente Person schneller und einfacher ist, Code zu schreiben, als für jemanden, der gerade ein Lehrbuch aufgeschlagen hat, der ein paar Fehler machen wird und dann nur das richtige Ergebnis bekommt? Wenn du meinst, dass ich nicht darüber nachdenken will, wie ich schreiben soll, dann würde ich logischerweise sofort das Problem schreiben und darum bitten, eines zu schreiben, aber nein, ich will mich selbst verstehen, aber nicht die ganze Sprache, sondern speziell meine Aufgabe
 
sergeev:

Ich habe Ihnen bestimmte Funktionsnamen geschrieben.

Ich habe Ihnen sogar den Algorithmus für Ihr Handeln gezeigt.

Sind Sie sogar zu faul, um darüber nachzudenken, was Sie geschrieben haben?

Ich habe nur OrderModify gefunden, OrderOpenPrice konnte ich nicht finden, obwohl ich mich erinnere, es schon einmal gesehen zu haben. Wie für das Denken, dachte ich, dass eine solche Aufgabe gehört zu booleschen Funktionen (ich denke, wenn, dann), in denen zu setzen, was Sie geschrieben haben. bin ich richtig?
 
Danil93:
Ich habe nur OrderModify gefunden, OrderOpenPrice konnte ich nicht finden, obwohl ich mich erinnere, es schon einmal gesehen zu haben. Was das Denken betrifft, dachte ich, dass ein solches Problem zu booleschen Funktionen gehört (ich denke, wenn, dann), in denen Sie schreiben müssen, was Sie geschrieben haben. habe ich Recht?

Ja.

Ok. Wenn ich Ihnen eine Funktion, die Sie wollen, können Sie zumindest fügen Sie es in den Code selbst?

 
sergeev:

Ja, ja.

Ok. Wenn ich Ihnen die gewünschte Funktion gebe, können Sie sie dann wenigstens selbst in den Code einfügen?

Ich kann
 

wie man programmatisch den Höchststand zwischen einem bestimmten Datum und einem anderen Datum ermittelt.

Es gibt eine Funktion, die nach einem Hoch nach Balken sucht; ich verstehe, dass sie nach einem Hoch von 0 Balken bis 4 Balken sucht; kann ich das Datum und die Uhrzeit des Balkens anstelle des Balkens verwenden?

Zum Beispiel kann ich das Datum 2011.01.05 20:00 bestimmen und den Balken finden (10 oder 100 Balken) und ihn dann in die Funktion der Suche nach dem Hoch einfügen?

iHigh(Symbol(),0,iHighest(NULL,0,MODE_HIGH,4,0)
 
Eliza:

wie man programmatisch den Höchststand zwischen einem bestimmten Datum und einem anderen Datum ermittelt.

Es gibt eine Funktion, die nach einem Hoch nach Balken sucht; ich verstehe, dass sie nach einem Hoch von 0 Balken bis 4 Balken sucht; kann ich das Datum und die Uhrzeit des Balkens anstelle des Balkens verwenden?

Zum Beispiel kann ich das Datum 2011.01.05 20:00 bestimmen und den Balken finden (10 oder 100 Balken) und ihn dann in die Funktion der Suche nach dem Hoch einfügen?


int iBarShift( string symbol, int timeframe, datetime time, bool exact=false) 
Поиск бара по времени. Функция возвращает смещение бара, которому принадлежит указанное время. 
Если для указанного времени бар отсутствует ("дыра" в истории), то функция возвращает, в зависимости 
от параметра exact, -1 или смещение ближайшего бара.

Параметры:
symbol   -   Символьное имя инструмента. NULL означает текущий символ. 
timeframe   -   Период. Может быть одним из периодов графика. 0 означает период текущего графика. 
time   -   Значение времени для поиска. 
exact   -   Возвращаемое значение если бар не найден. FALSE - iBarShift возвращает ближайший. 
            TRUE - iBarShift возвращает -1. 

Пример:
  datetime some_time=D'2004.03.21 12:00';
  int      shift=iBarShift("EUROUSD",PERIOD_M1,some_time);
  Print("shift of bar with open time ",TimeToStr(some_time)," is ",shift);

 
 
VladislavVG:

Vielen Dank.)
 
Danil93:
kann
//------------------------------------------------------------------ TralTP
void TralTP()
{
        int TS=20; // расстояние убытка, на котором переносим тейкпрофит на цену открытия
        
        double FreezLvl=MarketInfo(Symbol(), MODE_FREEZELEVEL)*Point; // расстояние заморозки ордера
        double StopLvl=MarketInfo(Symbol(), MODE_STOPLEVEL)*Point; // расстояние стопуровня ордера
        
        int n=OrdersTotal(); // число текущих открытых ордеров
        for (int i=0; i<n; i++) // проходим по всем ордерам и двигаем стоп
        {
                if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; // берем ордер
                if (OrderSymbol()!=Symbol()) continue; // если ордер не нашей валюты, то пропускаем
                
                // берем его параметры
                int dir=OrderType(); double cop=NormalizeDouble(OrderOpenPrice(), Digits);
                double csl=NormalizeDouble(OrderStopLoss(), Digits); 
                double ctp=NormalizeDouble(OrderTakeProfit(), Digits);
                
                double apr; if (dir==OP_BUY) apr=Bid; else apr=Ask;
                // проверили уровень заморозки
                if (MathAbs(ctp-apr)<=FreezLvl || MathAbs(csl-apr)<=FreezLvl) continue; // если уровень заморозки
                
                double tp=cop; // ставим ТП на цену открытия
                
                // и проверяем условия выполнения отхода в убыток и правильность установки
                if ((dir==OP_BUY && cop-apr>=TS*Point && (tp<ctp || ctp==0) && tp>apr+StopLvl)
                 || (dir==OP_SELL && apr-cop>=TS*Point && (tp>ctp || ctp==0) && tp<apr-StopLvl))
                {
                        if (!OrderModify(OrderTicket(), cop, csl, tp, 0)) 
                                Print(GetLastError(), " -TralPos #"+OrderTicket()+" tp="+tp);
                }
        }
}
 


if (OrderSymbol()!=Symbol()) continue; // wenn die Bestellung nicht unserer Währung entspricht, dann überspringen

Ich verstehe noch nichts, ich habe gerade das Forum betreten, ich schaue 15 Sekunden lang, aber es gibt einen Fehler, ich sollte == schreiben, auf den ersten Blick, sorry, wenn etwas falsch ist.

Frohe Feiertage!!!Alle!!!!