Valeriy Yastremskiy #: Der Algorithmus "berührt/gekreuzt/verschoben" funktioniert nicht?
Schwierig, ich möchte schon etwas Passendes einreichen. Es reicht ihm, wenn er die Ebenen visualisiert und die Haltestellen zu den vergangenen Ebenen verschiebt, das reicht. Mit so einem Fang habe ich nicht gerechnet. Wenn er nicht schon lange weg gewesen wäre, hätte ich es getan, aber nicht jetzt. Ich will keine Arbitrage, ich habe sie bereits.
wenn step:=:const, dann werden einfach die Levels mit dem angegebenen Step ab dem aktuellen Stop Loss angezeigt. Was könnte einfacher sein als das.
Ja Algorithmus ich verstehe. Öffnen Sie ein Fenster und schreiben Sie auf, was los ist? Etwas andere Bedingungen, um sich zu vertiefen und zu schreiben.
P.S.: Unter anderen Umständen würde ich nicht fragen.
Bitte beraten Sie, wer weiß, ich kann nicht öffnen, eine Bestellung auf der Demo-Version schreibt, dass es mit einem allgemeinen Fehler in der Warteschlange ist! Was ist das Problem?
höchstwahrscheinlich - ex4 wurde mit einem alten Compiler erstellt. Das Terminal wurde aktualisiert, aber der EA ist ein altes Waisenkind. Wir müssen den Autor kontaktieren
Die zweite Möglichkeit: Die Signaturen stimmen nicht überein (oder wurden aus technischen Gründen nicht überprüft). Sie brauchen nur zu warten, bis DNS aktualisiert wird, und schon ist die Verbindung hergestellt.
Hypothetische Option - der Autor wird dauerhaft gesperrt. Sehen Sie sich sein Profil an
Zusammenfassend lässt sich sagen, dass man dem Autor zunächst Fragen stellen muss.
Schwierig, ich möchte schon etwas Passendes einreichen. Es reicht ihm, wenn er die Ebenen visualisiert und die Haltestellen zu den vergangenen Ebenen verschiebt, das reicht. Mit so einem Fang habe ich nicht gerechnet. Wenn er nicht schon lange weg gewesen wäre, hätte ich es getan, aber nicht jetzt. Ich will keine Arbitrage, ich habe sie bereits.
Oninit berechnet die Pegel und zeichnet. Für eine andere Aufgabe, aber in der Nähe. Ihr Teil ist für Absolute Levels.
Zy, ich habe natürlich nicht viel daran auszusetzen. Ich muss verstehen, wie Aufträge, Positionen und Schleppnetze verfolgt werden. Es ist einfach zu zeichnen, aber wenn man ein Level erreicht, muss man entweder die Farbe des Levels ändern oder die horizontale Linie entfernen.
OnInit berechnet die Pegel und zeichnet. Für eine andere Aufgabe, aber Seite an Seite. Ihr Teil ist für Absolute Levels.
Zy, ich habe sicherlich nicht viel daran auszusetzen. Ich muss verstehen, wie Aufträge, Positionen und Schleppnetze verfolgt werden, dann ist es einfach zu zeichnen. Aber wenn man ein Level erreicht, muss man entweder die Farbe des Levels ändern oder die horizontale Linie entfernen.
Was könnte)))) brauchen, um Trigger-Flags zu crossfunction hinzuzufügen. habe keine Zeit.
inputdouble PriceOrder=0.0; // Цена ордера, inputint TralStep=300; // Шаг отслеживания SL inputint NumberLevels=7; // Kоличество уровней для выбранного метода ВВЕРХinputbool FlagShowLine=true; // Рисовать / не рисовать уровни//---double LevelPrice[10]; // Количество уровней не более 10.string HLineName[10];
bool Del=true;
string MsgAlert,Tip;
int CurLevel;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//---Расчет ценовых уровней
CalculationOfLevels(PriceOrder,TralStep,NumberLevels,Tip);
if(FlagShowLine)
{
ShowLine(Tip);
}
//--- create timerEventSetTimer(60);
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
Comment("");
int obj_total=ObjectsTotal();
PrintFormat("Всего %d объектов",obj_total);
for(int i=obj_total-1; i>=0; i--)
{
string name=ObjectName(i);
// PrintFormat("Объект %d: %s",i,name);ObjectDelete(name);
}
//--- destroy timerEventKillTimer();
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---
CrossingLevel(CurLevel,Tip);
}
//+------------------------------------------------------------------+//| Timer function |//+------------------------------------------------------------------+voidOnTimer()
{
//---
}
//+------------------------------------------------------------------+//| Tester function |//+------------------------------------------------------------------+doubleOnTester()
{
//---double ret=0.0;
//---//---return(ret);
}
//+------------------------------------------------------------------+//| ChartEvent function |//+------------------------------------------------------------------+voidOnChartEvent(constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam)
{
//---
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+ //| Создает горизонтальную линию | //+------------------------------------------------------------------+ bool HLineCreate(constlong chart_ID=0, // ID графика conststring name="HLine", // имя линии constint sub_window=0, // номер подокна double price=0, // цена линии constcolor clr=clrRed, // цвет линии constENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии constint width=1, // толщина линии constbool back=true, // на заднем плане constbool selection=false, // выделить для перемещений constbool hidden=false, // скрыт в списке объектов constlong z_order=0) // приоритет на нажатие мышью
{
//--- если цена не задана, то установим ее на уровне текущей цены Bid if(!price)
price=SymbolInfoDouble(Symbol(),SYMBOL_BID);
//--- сбросим значение ошибки ResetLastError();
//--- создадим горизонтальную линию if(!ObjectCreate(chart_ID,name,OBJ_HLINE,sub_window,0,price))
{
Print(__FUNCTION__,
": не удалось создать горизонтальную линию! Код ошибки = ",GetLastError());
return(false);
}
//--- установим цвет линии ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль отображения линии ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим толщину линии ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
//--- отобразим на переднем (false) или заднем (true) плане ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- включим (true) или отключим (false) режим перемещения линии мышью //--- при создании графического объекта функцией ObjectCreate, по умолчанию объект //--- нельзя выделить и перемещать. Внутри же этого метода параметр selection //--- по умолчанию равен true, что позволяет выделять и перемещать этот объект ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установим приоритет на получение события нажатия мыши на графике ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- успешное выполнение return(true);
}
//+------------------------------------------------------------------+//| Поиск ближайших уровней |//+------------------------------------------------------------------+ void ShowModify(string name, string tip, bool del)
{
if(del){
ObjectDelete(name);
}
if(!del){
if(tip=="Sell"){
ObjectSetInteger(0,name,OBJPROP_COLOR,clrGold);
}
if(tip=="Buy"){
ObjectSetInteger(0,name,OBJPROP_COLOR,clrCoral);
}
}
}
//+------------------------------------------------------------------+//| Мониторинг пересечения уровней |//+------------------------------------------------------------------+bool CrossingLevel(int level, string tip)
{
if((tip=="Buy" && Bid > LevelPrice[level]) || (tip=="Sell" && Ask < LevelPrice[level])){
CurLevel=level++ ;
return(true);
}
return(false);
}
void CalculationOfLevels(double priceorder, int trstep, int numberl, string tip){
//---Расчет ценовых уровнейfor(int i=0; i<=(numberl); i++){
if(tip=="Buy"){
LevelPrice[i] = priceorder + trstep*Point;
if(tip=="Sell"){
LevelPrice[i] = priceorder - trstep*Point;
}
}
CurLevel=1;
}
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void ShowLine(string tip)
{
color ClrLine=clrRed;
if(tip=="Buy") ClrLine=clrBlue;
if(tip=="Sell") ClrLine=clrRed;
for(int i=0;i<=(NumberLevels);i++){
//Alert("ShowLine_",ShowLine,"__",LevelPrice[i],"__",ClrLine);
HLineName[i]="LevelPrice_"+(string)i+"_"+(string)LevelPrice[i];
HLineCreate(0,HLineName[i],0,LevelPrice[i],(color)ClrLine,STYLE_SOLID,1);
}
}
Was ich könnte))) müssen Trigger-Flags zu der Querfunktion hinzufügen. haben keine Zeit.
Das ist ein bisschen weit hergeholt.
Ich habe einen EA vor langer Zeit geschrieben, aber es ist ein EA mit Anzeige, wo die Positionen geöffnet werden
Nun muss ich im Schleppnetzcode eine Ergänzung vornehmen, um solche Linien zu zeichnen, bei denen das Schleppnetz ausgelöst wird.
Die Aufgabe wird dadurch erschwert, dass der Schleppnetz-EA auf einer Karte eingestellt ist und auf allen Karten, auf denen es offene Positionen gibt, Linien gezeichnet werden sollen.
Ich habe eine lange geschrieben, wie diese, aber es ist ein EA mit einer Anzeige, wo die Positionen geöffnet werden
Nun müssen wir im Code des Schleppnetzes eine Ergänzung vornehmen, um solche Linien zu zeichnen, bei denen das Schleppnetz ausgelöst wird.
Die Aufgabe wird dadurch erschwert, dass der Schleppnetz-EA auf einer Karte eingestellt ist und auf allen Karten, auf denen es offene Positionen gibt, Linien gezeichnet werden sollen.
Sind alle Fenster bereits geöffnet, oder werden sie vom EA geöffnet, wenn sich Positionen ergeben? Die Herausforderung besteht darin, eine Tabelle zu finden)
Valeriy Yastremskiy #: Sind alle Fenster bereits geöffnet, oder werden sie vom EA geöffnet, wenn Positionen entstehen? Die Herausforderung besteht darin, eine Tabelle zu finden)
Ich gehe davon aus, dass, wenn es eine Stelle gibt, das Fenster offen ist.
Der Algorithmus "berührt/gekreuzt/verschoben" funktioniert nicht?
Schwierig, ich möchte schon etwas Passendes einreichen. Es reicht ihm, wenn er die Ebenen visualisiert und die Haltestellen zu den vergangenen Ebenen verschiebt, das reicht. Mit so einem Fang habe ich nicht gerechnet. Wenn er nicht schon lange weg gewesen wäre, hätte ich es getan, aber nicht jetzt. Ich will keine Arbitrage, ich habe sie bereits.
wenn step:=:const, dann werden einfach die Levels mit dem angegebenen Step ab dem aktuellen Stop Loss angezeigt. Was könnte einfacher sein als das.
wenn step:=:const, dann werden einfach die Levels mit dem angegebenen Step ab dem aktuellen Stop Loss angezeigt. Was könnte einfacher sein als das.
Ja Algorithmus ich verstehe. Öffnen Sie ein Fenster und schreiben Sie auf, was los ist? Etwas andere Bedingungen, um sich zu vertiefen und zu schreiben.
P.S.: Unter anderen Umständen würde ich nicht fragen.
höchstwahrscheinlich - ex4 wurde mit einem alten Compiler erstellt. Das Terminal wurde aktualisiert, aber der EA ist ein altes Waisenkind. Wir müssen den Autor kontaktieren
Die zweite Möglichkeit: Die Signaturen stimmen nicht überein (oder wurden aus technischen Gründen nicht überprüft). Sie brauchen nur zu warten, bis DNS aktualisiert wird, und schon ist die Verbindung hergestellt.
Hypothetische Option - der Autor wird dauerhaft gesperrt. Sehen Sie sich sein Profil an
Zusammenfassend lässt sich sagen, dass man dem Autor zunächst Fragen stellen muss.
Dankeschön
Schwierig, ich möchte schon etwas Passendes einreichen. Es reicht ihm, wenn er die Ebenen visualisiert und die Haltestellen zu den vergangenen Ebenen verschiebt, das reicht. Mit so einem Fang habe ich nicht gerechnet. Wenn er nicht schon lange weg gewesen wäre, hätte ich es getan, aber nicht jetzt. Ich will keine Arbitrage, ich habe sie bereits.
Oninit berechnet die Pegel und zeichnet. Für eine andere Aufgabe, aber in der Nähe. Ihr Teil ist für Absolute Levels.
Zy, ich habe natürlich nicht viel daran auszusetzen. Ich muss verstehen, wie Aufträge, Positionen und Schleppnetze verfolgt werden. Es ist einfach zu zeichnen, aber wenn man ein Level erreicht, muss man entweder die Farbe des Levels ändern oder die horizontale Linie entfernen.OnInit berechnet die Pegel und zeichnet. Für eine andere Aufgabe, aber Seite an Seite. Ihr Teil ist für Absolute Levels.
Zy, ich habe sicherlich nicht viel daran auszusetzen. Ich muss verstehen, wie Aufträge, Positionen und Schleppnetze verfolgt werden, dann ist es einfach zu zeichnen. Aber wenn man ein Level erreicht, muss man entweder die Farbe des Levels ändern oder die horizontale Linie entfernen.Was könnte)))) brauchen, um Trigger-Flags zu crossfunction hinzuzufügen. habe keine Zeit.
Was ich könnte))) müssen Trigger-Flags zu der Querfunktion hinzufügen. haben keine Zeit.
Das ist ein bisschen weit hergeholt.
Ich habe einen EA vor langer Zeit geschrieben, aber es ist ein EA mit Anzeige, wo die Positionen geöffnet werden
Nun muss ich im Schleppnetzcode eine Ergänzung vornehmen, um solche Linien zu zeichnen, bei denen das Schleppnetz ausgelöst wird.
Die Aufgabe wird dadurch erschwert, dass der Schleppnetz-EA auf einer Karte eingestellt ist und auf allen Karten, auf denen es offene Positionen gibt, Linien gezeichnet werden sollen.
Das ist ein bisschen weit hergeholt.
Ich habe eine lange geschrieben, wie diese, aber es ist ein EA mit einer Anzeige, wo die Positionen geöffnet werden
Nun müssen wir im Code des Schleppnetzes eine Ergänzung vornehmen, um solche Linien zu zeichnen, bei denen das Schleppnetz ausgelöst wird.
Die Aufgabe wird dadurch erschwert, dass der Schleppnetz-EA auf einer Karte eingestellt ist und auf allen Karten, auf denen es offene Positionen gibt, Linien gezeichnet werden sollen.
Sind alle Fenster bereits geöffnet, oder werden sie vom EA geöffnet, wenn Positionen entstehen? Die Herausforderung besteht darin, eine Tabelle zu finden)
Ich gehe davon aus, dass, wenn es eine Stelle gibt, das Fenster offen ist.