Credo che il tuo problema sia che non hai resettato val1 e val2. Quindi una volta che hai trovato il massimo e l'ultimo minimo devi resettarli:
Speriamo che questo aiuti.
Ahhh, lo proverò una volta che avrò avviato windows più tardi in giornata, grazie
Pensavo che se la prima if(statement) fosse stata vera, allora avrebbe riavviato lo start() di nuovo e resettato dall'inizio del codice e quindi resettato val1 e val2 di nuovo
Beh, il modo in cui ci stavo pensando era - if(first statement) true quindi stampa, e poi passa al testo il prossimo if(second) probabilmente false quindi torna di nuovo all'inizio dello start e resetta val1 e val2
Sto ottenendo le stampe e i valori corretti ma stampa solo continuamente.
Ora che ci penso non l'ho mai capito per nessun if(statement) anche la più semplice delle croci EMA produce stampe continue
Proverò il tuo codice che hai postato ma sarei sorpreso se aggiungessi le dichiarazioni di stampa per stampare quelle variabili e non stampasse continuamente anche
Ok, sì, resettare val1 e val2 mi restituisce A high, ma continua a stampare tutto continuamente, non così tanti come prima. Sono sicuro di dover fare qualcosa con currentTime e iTime per sistemare la cosa, dovrò rivederla ancora un po'.
Sembra che ci dovrebbe essere già uno schema ABCD nella base di codice da cui imparare, ma questo sembra essere qualcosa che non è disponibile tranne che sulla base di ZigZag che sto rivedendo ora per vedere se questo mi dà qualche indizio. Ma di nuovo questo è anche un indicatore
Comunque se aggiungo && macd o qualcosa del genere li stampa solo una volta, il che mi sta davvero buttando fuori
Penso di averlo, dopo averci pensato ancora un po' e averci lavorato un po' di più
Che ne dite di questo:
//+------------------------------------------------------------------+//| Agent86_5min.mq4 |//| Unfinished POS |//| //+------------------------------------------------------------------+#property copyright "Unfinished POS by Agent86"//---- input parametersexterndouble TakeProfit=20.0;
externdouble Lots=0.1;
externdouble StopLoss=10.0;
externint MagicNumber=123486;
double val1;
double val2;
bool traded = false;
bool A = false;
//++++ These are adjusted for 5 digit brokers.int pips2points; // slippage 3 pips 3=points 30=pointsdouble pips2dbl; // Stoploss 15 pips 0.0015 0.00150intDigits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips)// OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init()
{
if (Digits == 5 || Digits == 3)
{ // Adjust for five (5) digit brokers.
pips2dbl = Point*10; pips2points = 10; Digits.pips = 1;
}
else
{
pips2dbl = Point; pips2points = 1; Digits.pips = 0;
}
// OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl//---- //----return(0);
}
//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//---- //----return(0);
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
int i=0;
int ticket,total,result;
total = OrdersTotal();
val1=iFractals(NULL, 0, MODE_UPPER,3);
val2=iFractals(NULL, 0, MODE_LOWER,3);
if(val1 > 0 && traded == false && val2==0)
{
// in the absence of an && indicator above I get continous print statements// also does not print A high this is not desired// with indicator added && indicator above, then it prints A and B once as it should ???// I need to work this out so it won't print all the time aka trade all the time// A and B first values seems to initialize the whole block// just a reminder that they time stamps coordinate after this FYI// now work on C retrace and possibly signals// add options for user to select some candle patterns// add options to select indicators// add bells and whistles to make things fun// alerts,sounds,maybe poppup video animation or somethingdouble B = val1;
Print(B, " B high");
if(val2==0)
{
for (i=0; val2==0; i++)
{
val2=iFractals(NULL, 0, MODE_LOWER, i);
double A = val2;
if(A!=0)
{
Print(A, " A low");
}
}
}
traded=true;
}
val1=iFractals(NULL, 0, MODE_UPPER,3);
val2=iFractals(NULL, 0, MODE_LOWER,3);
if(val2 > 0 && traded == true && val1 == 0)
{
B = val2;
Print(B, " B low");
if(val1==0)
{
for (i=0; val1==0; i++)
{
val1=iFractals(NULL, 0, MODE_UPPER, i);
A = val1;
if(A!=0)
{
Print(A, " A high");
}
}
}
traded=false;
}
return(0);
}
//+------------------------------------------------------------------+
Questo viene stampato solo una volta quando si aggiunge
if(val1 > 0 && traded == false && val2==0)
e
if(val2 > 0 && traded == true && val1 == 0)
Così mi sto avvicinando un po' di più e posso valutarlo ancora un po'.
Grazie per l'aiuto a tutti, questo è stato un aiuto gigantesco perché mi ha giocato le idee per risolvere questo e ha ampliato la mia conoscenza un po' di più su come resettare le cose. Devo tenerlo nella mia tasca posteriore
Non ricevo il problema la maggior parte delle volte. Sembra che succeda solo quando c'è un frattale superiore e inferiore nella stessa barra, il che succede nei mercati incerti a volte. L'unico modo per aggirare questo problema è eseguire il calcolo solo una volta per barra:
Ora posso iniziare a lavorare sul resto, vorrei solo essere abbastanza esperto da capire la conversione di un indicatore iCustom in un EA, allora probabilmente l'avrei già risolto molto tempo fa.
Il modo in cui lo sto facendo ora sarà più complicato perché devo ancora aggiungere indicatori iCustom insieme alla mia logica di codice; e tutte le campane e i fischietti invece di usare un indicatore iCustomer già funzionante come mia logica di codice
Comunque, grazie ancora una volta, una grande notizia per il giorno.
Non ricevo il problema la maggior parte delle volte. Sembra che succeda solo quando c'è un frattale superiore e inferiore nella stessa barra, il che succede nei mercati incerti a volte. L'unico modo per aggirare questo problema è eseguire il calcolo solo una volta per barra:
Questo dovrebbe significare che non otterrà falsi scambi su frattali che vanno in entrambe le direzioni.
Ho bisogno di imparare come funziona questa parte un po' meglio, l'ho vista prima e altre versioni simili, ma l'ho capita solo in parte.
Ho bisogno di studiarlo ancora un po'. Questo potrebbe essere il punto in cui sto perdendo la maggior parte dei miei codici a causa delle continue dichiarazioni di stampa durante i test.
Sono sicuro che ci sono altri modi per aggirarlo e tuttavia ho intenzione di creare anche l'indicatore per questo e disegnare le linee da AtoB ecc.
Forse qualcuno può farne buon uso, sono sicuro che può essere rivisto meglio da un guru
Comunque sta stampando quello che voglio e ho aggiunto alcuni valori esterni per i livelli di fibo in modo che gli utenti possano selezionare i livelli che vogliono
Il mio primo contributo di codice al forum LOL
Qualcuno ha un modo migliore per portare a termine questo compito, io già prevedo di raddoppiare il codice a causa dell'aggiunta di indicatori iCustom per mostrare cosa sta facendo il mio codice, ma questo significa una sorta di doppia codifica per un array buffer ecc. e poi usare iCustom
Comunque ecco cosa ho ottenuto
//+------------------------------------------------------------------+//| Unfinished_POS_slate.mq4 |//| Unfinished POS |//| //+------------------------------------------------------------------+#property copyright "Unfinished POS slate by Agent86"//---- input parametersexterndouble TakeProfit=20.0;
externdouble Lots=0.1;
externdouble StopLoss=10.0;
externint MagicNumber=123486;
externdouble fibo_retrace=0.500; //this is C retracement levelexterndouble fibo_extension=1.618; // coming soon, D extention double val1;
double val2;
bool traded = false;
//++++ These are adjusted for 5 digit brokers.int pips2points; // slippage 3 pips 3=points 30=pointsdouble pips2dbl; // Stoploss 15 pips 0.0015 0.00150intDigits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips)// OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init()
{
if (Digits == 5 || Digits == 3)
{ // Adjust for five (5) digit brokers.
pips2dbl = Point*10; pips2points = 10; Digits.pips = 1;
}
else
{
pips2dbl = Point; pips2points = 1; Digits.pips = 0;
}
// OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl//---- //----return(0);
}
//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//---- //----return(0);
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
int i=0;
int ticket,total,result;
total = OrdersTotal();
val1=iFractals(NULL, 0, MODE_UPPER,3);
val2=iFractals(NULL, 0, MODE_LOWER,3);
if(val1 > 0 && val2 == 0 && traded == false)
{
double B = val1;
Print(B, " B high");
if(val2==0)
{
for (i=0; val2==0; i++)
{
val2=iFractals(NULL, 0, MODE_LOWER, i);
double A = val2;
if(A!=0)
{
Print(A, " A low");
}
}
}
double C = B-(B-A)*fibo_retrace; //retrace 50% no fractalPrint(C, " UP ABC retrace level");
if(Bid <= C)
{
Print (Bid, " UP ABC C Retrace Hit");
}
traded=true;
}
//val1=iFractals(NULL, 0, MODE_UPPER,3); been suggested I might need to reset these here//val2=iFractals(NULL, 0, MODE_LOWER,3); I'll investigate this some moreif(val2 > 0 && val1 == 0 && traded == true)
{
B = val2;
Print(B, " B low");
if(val1==0)
{
for (i=0; val1==0; i++)
{
val1=iFractals(NULL, 0, MODE_UPPER, i);
A = val1;
if(A!=0)
{
Print(A, " A high");
}
}
}
C = B+(A-B)*fibo_retrace; //retrace 50% no fractal //recheck my math on this onePrint(C, " DOWN ABC retrace level");
if(Bid <= C)
{
Print (Bid, " DOWN ABC C Retrace Hit");
}
traded=false;
}
return(0);
}
//+------------------------------------------------------------------+
Con la mia limitata conoscenza ed esperienza questo è tutto quello che ho potuto trovare per uno schema ABCD
Ci lavorerò di più per permettere all'utente di cambiare gli A e i B a livelli che non violino gli A e i B precedenti per rimanere veramente all'interno di una tendenza ecc.
Spero che qualcuno possa usare questo o forse possa aggiungerlo con qualche idea migliore
Ora lavorerò su modelli di candele e indicatori da aggiungere ad esso o qualcosa del genere, e avvisi popup, forse suoni e qualche video popup potrebbe essere divertente
Меня зовут Герман, мне 23 года, я являюсь трейдером компании "Инстафорекс"
Помогите в поиске нужного скрипта! Скрипт нужен для сетки отложенных ордеров.
Amico, non sono interessato a InstaForex e se volete uno script per la griglia, per favore postate un progetto nella sezione coders for hire E per favore postate in inglese
Credo che il tuo problema sia che non hai resettato val1 e val2. Quindi una volta che hai trovato il massimo e l'ultimo minimo devi resettarli:
Speriamo che questo aiuti.Pensavo che se la prima if(statement) fosse stata vera, allora avrebbe riavviato lo start() di nuovo e resettato dall'inizio del codice e quindi resettato val1 e val2 di nuovo
Beh, il modo in cui ci stavo pensando era - if(first statement) true quindi stampa, e poi passa al testo il prossimo if(second) probabilmente false quindi torna di nuovo all'inizio dello start e resetta val1 e val2
Sto ottenendo le stampe e i valori corretti ma stampa solo continuamente.
Ora che ci penso non l'ho mai capito per nessun if(statement) anche la più semplice delle croci EMA produce stampe continue
Proverò il tuo codice che hai postato ma sarei sorpreso se aggiungessi le dichiarazioni di stampa per stampare quelle variabili e non stampasse continuamente anche
Lo proverò in giornata
Grazie
Sono sicuro di dover fare qualcosa con currentTime e iTime per sistemare la cosa, dovrò rivederla ancora un po'.
Sembra che ci dovrebbe essere già uno schema ABCD nella base di codice da cui imparare, ma questo sembra essere qualcosa che non è disponibile tranne che sulla base di ZigZag che sto rivedendo ora per vedere se questo mi dà qualche indizio. Ma di nuovo questo è anche un indicatore
Comunque se aggiungo && macd o qualcosa del genere li stampa solo una volta, il che mi sta davvero buttando fuori
Che ne dite di questo:
Questo viene stampato solo una volta quando si aggiunge
e
Così mi sto avvicinando un po' di più e posso valutarlo ancora un po'.
Grazie per l'aiuto a tutti, questo è stato un aiuto gigantesco perché mi ha giocato le idee per risolvere questo e ha ampliato la mia conoscenza un po' di più su come resettare le cose.
Devo tenerlo nella mia tasca posteriore
Grazie
Non ricevo il problema la maggior parte delle volte. Sembra che succeda solo quando c'è un frattale superiore e inferiore nella stessa barra, il che succede nei mercati incerti a volte. L'unico modo per aggirare questo problema è eseguire il calcolo solo una volta per barra:
Questo dovrebbe significare che non otterrà falsi scambi su frattali che vanno in entrambe le direzioni.
Il modo in cui lo sto facendo ora sarà più complicato perché devo ancora aggiungere indicatori iCustom insieme alla mia logica di codice; e tutte le campane e i fischietti invece di usare un indicatore iCustomer già funzionante come mia logica di codice
Comunque, grazie ancora una volta, una grande notizia per il giorno.
Non ricevo il problema la maggior parte delle volte. Sembra che succeda solo quando c'è un frattale superiore e inferiore nella stessa barra, il che succede nei mercati incerti a volte. L'unico modo per aggirare questo problema è eseguire il calcolo solo una volta per barra:
Questo dovrebbe significare che non otterrà falsi scambi su frattali che vanno in entrambe le direzioni.
Ho bisogno di studiarlo ancora un po'. Questo potrebbe essere il punto in cui sto perdendo la maggior parte dei miei codici a causa delle continue dichiarazioni di stampa durante i test.
Sono sicuro che ci sono altri modi per aggirarlo e tuttavia ho intenzione di creare anche l'indicatore per questo e disegnare le linee da AtoB ecc.
Studierò un po' di più
Forse qualcuno può farne buon uso, sono sicuro che può essere rivisto meglio da un guru
Comunque sta stampando quello che voglio e ho aggiunto alcuni valori esterni per i livelli di fibo in modo che gli utenti possano selezionare i livelli che vogliono
Il mio primo contributo di codice al forum LOL
Qualcuno ha un modo migliore per portare a termine questo compito, io già prevedo di raddoppiare il codice a causa dell'aggiunta di indicatori iCustom per mostrare cosa sta facendo il mio codice, ma questo significa una sorta di doppia codifica per un array buffer ecc. e poi usare iCustom
Comunque ecco cosa ho ottenuto
Con la mia limitata conoscenza ed esperienza questo è tutto quello che ho potuto trovare per uno schema ABCD
Ci lavorerò di più per permettere all'utente di cambiare gli A e i B a livelli che non violino gli A e i B precedenti per rimanere veramente all'interno di una tendenza ecc.
Spero che qualcuno possa usare questo o forse possa aggiungerlo con qualche idea migliore
Ora lavorerò su modelli di candele e indicatori da aggiungere ad esso o qualcosa del genere, e avvisi popup, forse suoni e qualche video popup potrebbe essere divertente
Grazie per l'aiuto a tutti.
Доброго времени суток уважаемые форумчане!
Меня зовут Герман, мне 23 года, я являюсь трейдером компании "Инстафорекс"
Помогите в поиске нужного скрипта! Скрипт нужен для сетки отложенных ордеров.
Доброго времени суток уважаемые форумчане!
Меня зовут Герман, мне 23 года, я являюсь трейдером компании "Инстафорекс"
Помогите в поиске нужного скрипта! Скрипт нужен для сетки отложенных ордеров.
E per favore postate in inglese
Buon trading