Difficile, vorrei già consegnare qualcosa di adatto. Gli va bene solo visualizzare i livelli e spostare le fermate ai livelli passati, questo è sufficiente. Non mi aspettavo una tale presa. Se non fosse stato via per molto tempo, l'avrei fatto, ma non ora. Non voglio l'arbitraggio, ce l'ho già.
molto probabilmente - ex4 è stato costruito con un vecchio compilatore. Il terminale è stato aggiornato, ma l'EA è un vecchio orfano. Dobbiamo contattare l'autore
La seconda opzione - le firme non corrispondono (o non sono state verificate per motivi tecnici). Dovete solo aspettare che il DNS si aggiorni e la connessione sarà stabilita.
Opzione ipotetica - l'autore viene bandito in modo permanente. Guarda il suo profilo
Per riassumere: prima bisogna fare domande all'autore.
Difficile, vorrei già consegnare qualcosa di adatto. Gli va bene solo visualizzare i livelli e spostare le fermate ai livelli passati, questo è sufficiente. Non mi aspettavo una tale presa. Se non fosse stato via per molto tempo, l'avrei fatto, ma non ora. Non voglio l'arbitraggio, ce l'ho già.
Oninit calcola i livelli e disegna. Per un compito diverso, ma vicino. La tua parte è per i livelli assoluti.
Zy, non ho molto di sbagliato, naturalmente. Ho bisogno di capire come vengono tracciati gli ordini, le posizioni e il trawl, è facile da disegnare, ma quando si raggiunge un livello, bisogna o cambiare il colore del livello, o cancellare la linea orizzontale.
OnInit calcola i livelli e disegna. Per un compito diverso, ma fianco a fianco. La tua parte è per i livelli assoluti.
Zy, certamente non ho molto di sbagliato. Devo capire come vengono tracciati gli ordini, le posizioni e il trawl, è facile da disegnare allora. ma quando raggiungi un livello devi o cambiare il colore del livello, o rimuovere la linea orizzontale.
Cosa potrebbe)))) bisogno di aggiungere i flag di trigger a crossfunction. non ho tempo.
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);
}
}
Quello che potrei))) bisogno di aggiungere flag di trigger alla funzione incrociata. non ho tempo.
È un po' fuori luogo.
Ho un EA scritto molto tempo fa, ma è un EA che mostra dove le posizioni saranno aperte
Ora ho bisogno di fare un'aggiunta nel codice della rete a strascico per disegnare tali linee dove la rete a strascico sarà attivata.
Il compito è complicato dal fatto che l'EA a strascico è impostato su un grafico e le linee devono essere disegnate su tutti i grafici dove ci sono posizioni aperte.
Ne ho uno scritto da tempo come questo, ma è un EA con una visualizzazione di dove saranno aperte le posizioni
Ora abbiamo bisogno di fare un'aggiunta nel codice della rete a strascico per disegnare tali linee dove la rete a strascico sarà attivata.
Il compito è complicato dal fatto che l'EA a strascico è impostato su un grafico e le linee devono essere disegnate su tutti i grafici dove ci sono posizioni aperte.
Tutte le finestre sono già aperte o vengono aperte dall'EA man mano che le posizioni emergono? La sfida è trovare un grafico)
Valeriy Yastremskiy #: Tutte le finestre sono già aperte o vengono aperte dall'EA man mano che si presentano le posizioni? La sfida è trovare un grafico)
Presumo che se c'è una posizione, la finestra è aperta.
L'algoritmo toccato / incrociato - spostato non funziona?
Difficile, vorrei già consegnare qualcosa di adatto. Gli va bene solo visualizzare i livelli e spostare le fermate ai livelli passati, questo è sufficiente. Non mi aspettavo una tale presa. Se non fosse stato via per molto tempo, l'avrei fatto, ma non ora. Non voglio l'arbitraggio, ce l'ho già.
se step:=:const, allora mostra semplicemente i livelli con il passo dato dallo stop loss corrente. Cosa potrebbe essere più semplice di questo.
se step:=:const, allora mostra semplicemente i livelli con il passo dato dallo stop loss corrente. Cosa potrebbe essere più semplice di questo.
Sì algoritmo capisco. Aprire una finestra, scrivere cosa sta succedendo? Condizioni leggermente diverse, da approfondire e scrivere.
P.S. In altre circostanze non lo chiederei.
molto probabilmente - ex4 è stato costruito con un vecchio compilatore. Il terminale è stato aggiornato, ma l'EA è un vecchio orfano. Dobbiamo contattare l'autore
La seconda opzione - le firme non corrispondono (o non sono state verificate per motivi tecnici). Dovete solo aspettare che il DNS si aggiorni e la connessione sarà stabilita.
Opzione ipotetica - l'autore viene bandito in modo permanente. Guarda il suo profilo
Per riassumere: prima bisogna fare domande all'autore.
Grazie
Difficile, vorrei già consegnare qualcosa di adatto. Gli va bene solo visualizzare i livelli e spostare le fermate ai livelli passati, questo è sufficiente. Non mi aspettavo una tale presa. Se non fosse stato via per molto tempo, l'avrei fatto, ma non ora. Non voglio l'arbitraggio, ce l'ho già.
Oninit calcola i livelli e disegna. Per un compito diverso, ma vicino. La tua parte è per i livelli assoluti.
Zy, non ho molto di sbagliato, naturalmente. Ho bisogno di capire come vengono tracciati gli ordini, le posizioni e il trawl, è facile da disegnare, ma quando si raggiunge un livello, bisogna o cambiare il colore del livello, o cancellare la linea orizzontale.OnInit calcola i livelli e disegna. Per un compito diverso, ma fianco a fianco. La tua parte è per i livelli assoluti.
Zy, certamente non ho molto di sbagliato. Devo capire come vengono tracciati gli ordini, le posizioni e il trawl, è facile da disegnare allora. ma quando raggiungi un livello devi o cambiare il colore del livello, o rimuovere la linea orizzontale.Cosa potrebbe)))) bisogno di aggiungere i flag di trigger a crossfunction. non ho tempo.
Quello che potrei))) bisogno di aggiungere flag di trigger alla funzione incrociata. non ho tempo.
È un po' fuori luogo.
Ho un EA scritto molto tempo fa, ma è un EA che mostra dove le posizioni saranno aperte
Ora ho bisogno di fare un'aggiunta nel codice della rete a strascico per disegnare tali linee dove la rete a strascico sarà attivata.
Il compito è complicato dal fatto che l'EA a strascico è impostato su un grafico e le linee devono essere disegnate su tutti i grafici dove ci sono posizioni aperte.
Questo è un po' fuori luogo.
Ne ho uno scritto da tempo come questo, ma è un EA con una visualizzazione di dove saranno aperte le posizioni
Ora abbiamo bisogno di fare un'aggiunta nel codice della rete a strascico per disegnare tali linee dove la rete a strascico sarà attivata.
Il compito è complicato dal fatto che l'EA a strascico è impostato su un grafico e le linee devono essere disegnate su tutti i grafici dove ci sono posizioni aperte.
Tutte le finestre sono già aperte o vengono aperte dall'EA man mano che si presentano le posizioni? La sfida è trovare un grafico)
Presumo che se c'è una posizione, la finestra è aperta.