Cercare di preparare i dati per l'addestramento di una rete neurale. Il compito è.
Avere una matrice, dove per esempio ogni riga (momento temporale - barra) è un vettore di input, e le colonne per esempio 10000. Cosa fare se ci sono dati dinamici (numero di righe1, righe2), e cambiare il numero in diversi punti nel tempo.
Per esempio, una matrice è caricata in una rete, ogni riga è un vettore di apprendimento, ma per ogni riga, c'è n numero di righe che cambia dinamicamente nel tempo.
Una possibile soluzione congetturale è quella di aggiungere colonne addizionali alla matrice pari al numero di colonne della riga dinamica, si scopre che ogni vettore avrà colonne dalla denamica, ma come se di una riga, appena prosunta.
Cercare di preparare i dati per l'addestramento di una rete neurale. Il compito è.
Avere una matrice, dove per esempio ogni riga (momento temporale - barra) è un vettore di input, e le colonne per esempio 10000. Cosa fare se ci sono dati dinamici (numero di righe1, righe2), e cambiare il numero in diversi punti nel tempo.
Per esempio, una matrice è caricata in una rete, ogni riga è un vettore di apprendimento, ma per ogni riga, c'è n numero di righe che cambia dinamicamente nel tempo.
Una possibile soluzione congetturale è quella di aggiungere colonne addizionali alla matrice pari al numero di colonne della riga dinamica, si scopre che ogni vettore avrà le colonne della denamica, ma come se di una riga, appena prosunta.
Buon pomeriggio. Ho creato un EA, funziona bene, ma se spengo il terminale con l'EA in esecuzione e riaccendo il terminale, l'EA inizia a contare di nuovo. Allora, ho una domanda. Cosa devo scrivere nel mio EA, in modo che resetti i parametri di ingresso all'avvio?
XFaost: Buon pomeriggio. Ho creato un EA, funziona bene, ma se spengo il terminale con l'EA in esecuzione e riaccendo il terminale, l'EA inizia a contare di nuovo. Allora, ho una domanda. Cosa devo prescrivere nell'EA, in modo che resetti i parametri di ingresso quando parte?
Voglio che il mio Expert Advisor non azzeri i parametri di input, ma che raccolga informazioni sugli ordini che sono stati aperti prima della sua chiusura.
XFaost: Buon pomeriggio. Ho creato un EA, funziona bene, ma se spengo il terminale con l'EA in esecuzione e riaccendo il terminale, l'EA inizia a contare di nuovo. Allora, ho una domanda. Cosa devo scrivere nel mio EA, in modo che resetti i parametri di ingresso quando lo avvio?
Si prega di descrivere il modo in cui funziona l'EA. Forse dovete usare un principio diverso. E se avete ancora bisogno di resettare, allora dovreste prima definire cosa si intende per "all'inizio". E in generale, un reset è una transizione alla posizione iniziale. Scrivete le impostazioni iniziali e impostatele al momento giusto.
L'EA piazza ordini con stop sopra e sotto il prezzo. Se uno di essi scatta, lo stop viene regolato se il prezzo si allontana dallo stop più di quanto impostato, se il prezzo si muove verso lo stop allora nessun cambiamento.
All'inizio ho scritto solo Buy order e ha funzionato come previsto. Se aggiungo un'immagine speculare per vendere, gli stop saranno corretti dal valore impostato qualunque sia il movimento del prezzo.
In generale, se separatamente, o per comprare o per vendere - tutto funziona come dovrebbe, ma entrambe le parti insieme - c'è un bug.
L'EA piazza ordini con stop sopra e sotto il prezzo. Se uno di essi scatta, lo stop viene regolato se il prezzo si allontana dallo stop più di quanto impostato, se il prezzo si muove verso lo stop allora nessun cambiamento.
All'inizio ho scritto solo Buy order e ha funzionato come previsto. Se aggiungo un'immagine speculare per vendere, gli stop saranno corretti dal valore impostato qualunque sia il movimento del prezzo.
In generale, se separatamente, o per comprare o per vendere, tutto funziona come dovrebbe essere, ma entrambe le parti insieme - c'è un bug.
...
L'intero codice che ci ha mostrato è un bug, vero? Almeno, la funzione OnTick è quasi interamente un bug...
Quando ci sono entrambe le parti del codice, sia per comprare che per vendere, allora dopo che l'ordine pendente scatta, il suo stop viene corretto in qualsiasi direzione di prezzo per qualche motivo. E quando c'è solo una parte di codice Buy o Sell, lo stop viene corretto come previsto, solo quando il prezzo si allontana da esso.
Buon pomeriggio, signori).
Cercare di preparare i dati per l'addestramento di una rete neurale. Il compito è.
Avere una matrice, dove per esempio ogni riga (momento temporale - barra) è un vettore di input, e le colonne per esempio 10000. Cosa fare se ci sono dati dinamici (numero di righe1, righe2), e cambiare il numero in diversi punti nel tempo.
Per esempio, una matrice è caricata in una rete, ogni riga è un vettore di apprendimento, ma per ogni riga, c'è n numero di righe che cambia dinamicamente nel tempo.
Una possibile soluzione congetturale è quella di aggiungere colonne addizionali alla matrice pari al numero di colonne della riga dinamica, si scopre che ogni vettore avrà colonne dalla denamica, ma come se di una riga, appena prosunta.
per esempio
1° vettore
1.365 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 ... "linea1 dinamica" 1 1 1 1 1 1
ssssssssssssssssssssssssssss "line2 dynamic" 1 1 1 1 1
soluzione
1.365 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 ... "linea1 dinamica" 2 2 2 2 2 2
Buon pomeriggio, signori).
Cercare di preparare i dati per l'addestramento di una rete neurale. Il compito è.
Avere una matrice, dove per esempio ogni riga (momento temporale - barra) è un vettore di input, e le colonne per esempio 10000. Cosa fare se ci sono dati dinamici (numero di righe1, righe2), e cambiare il numero in diversi punti nel tempo.
Per esempio, una matrice è caricata in una rete, ogni riga è un vettore di apprendimento, ma per ogni riga, c'è n numero di righe che cambia dinamicamente nel tempo.
Una possibile soluzione congetturale è quella di aggiungere colonne addizionali alla matrice pari al numero di colonne della riga dinamica, si scopre che ogni vettore avrà le colonne della denamica, ma come se di una riga, appena prosunta.
per esempio
1° vettore
1.365 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 ... "linea1 dinamica" 1 1 1 1 1 1
ssssssssssssssssssssssssssss "line2 dynamic" 1 1 1 1 1
soluzione
1.365 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 ... "linea1 dinamica" 2 2 2 2 2 2
https://www.mql5.com/ru/articles/159
Quindi c'è MQL5, come ho capito. O è identico?
Buon pomeriggio. Ho creato un EA, funziona bene, ma se spengo il terminale con l'EA in esecuzione e riaccendo il terminale, l'EA inizia a contare di nuovo. Allora, ho una domanda. Cosa devo prescrivere nell'EA, in modo che resetti i parametri di ingresso quando parte?
Buon pomeriggio. Ho creato un EA, funziona bene, ma se spengo il terminale con l'EA in esecuzione e riaccendo il terminale, l'EA inizia a contare di nuovo. Allora, ho una domanda. Cosa devo scrivere nel mio EA, in modo che resetti i parametri di ingresso quando lo avvio?
Saluti. Puoi dirmi cosa c'è che non va?
L'EA piazza ordini con stop sopra e sotto il prezzo. Se uno di essi scatta, lo stop viene regolato se il prezzo si allontana dallo stop più di quanto impostato, se il prezzo si muove verso lo stop allora nessun cambiamento.
All'inizio ho scritto solo Buy order e ha funzionato come previsto. Se aggiungo un'immagine speculare per vendere, gli stop saranno corretti dal valore impostato qualunque sia il movimento del prezzo.
In generale, se separatamente, o per comprare o per vendere - tutto funziona come dovrebbe, ma entrambe le parti insieme - c'è un bug.
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
extern double Lot = 0.01;
extern int StopLoss = 50;
extern int Slippage = 5;
extern int Delta = 60;
extern int Delta2 = 170;
extern int Magic = 321;
int ticket;
double price, sl, sl2;
datetime counted_bar = 0;
int OnInit()
{
if (Digits == 3 || Digits == 5)
{
StopLoss *= 10;
Delta *= 10;
Delta2 *= 10;
}
return(INIT_SUCCEEDED);
}
void OnTick() {
////// ПРОДАЖА ///////////////////////////////////////////////////////
if (SellLimitCount()==0 && SellCount()==0)
{
price = NormalizeDouble(Bid - Delta*Point, Digits);
sl = NormalizeDouble(price + StopLoss*Point, Digits);
ticket = OrderSend (Symbol(), OP_SELLSTOP, Lot, price, Slippage, sl, 0, "", Magic, 0, Red);
}
if (SellCount()!=0)
{
if (Bid < (OrderStopLoss() - NormalizeDouble (StopLoss*Point, Digits)))
{
sl = NormalizeDouble (Bid + StopLoss*Point, Digits);
if (OrderModify(ticket, price, sl, 0, 0, Red)) Print ("Sell_Order_Modify_Ok");
else Print ("ERROR_Sell_Order_Modify");
}
}
if (SellLimitCount()!=0)
{
if(Bid > (OrderOpenPrice() + NormalizeDouble (Delta2*Point, Digits)))
{
if (OrderDelete(ticket, Red)) Print ("BuyLimit_Order_Delete_Ok");
else Print ("ERROR_BuyLimit_Odrer_Delete");
}
}
/////////////////////////////////////////////////////////////////////////////////
/////// ПОКУПКА ////////////////////////////////////////////////////////
if (BuyLimitCount()==0 && BuyCount()==0)
{
price = NormalizeDouble(Ask + Delta*Point, Digits);
sl = NormalizeDouble(price - StopLoss*Point, Digits);
ticket = OrderSend (Symbol(), OP_BUYSTOP, Lot, price, Slippage, sl, 0, "", Magic, 0, Blue);
}
if (BuyCount()!=0)
{
if (Ask > (OrderStopLoss() + NormalizeDouble (StopLoss*Point, Digits)))
{
sl = NormalizeDouble (Ask - StopLoss*Point, Digits);
if (OrderModify(ticket, price, sl, 0, 0, Blue)) Print ("Buy_Order_Modify_Ok");
else Print ("ERROR_Buy_Order_Modify");
}
}
if (BuyLimitCount()!=0)
{
if(Ask < (OrderOpenPrice() - NormalizeDouble (Delta2*Point, Digits)))
{
if (OrderDelete(ticket, Blue)) Print ("BuyLimit_Order_Delete_Ok");
else Print ("ERROR_BuyLimit_Orde_Delete");
}
}
///////////////////////////////////////////////////////////////////////////////
}
//+------------------------------------------------------------------+
int BuyLimitCount(){
int count=0;
for(int i=OrdersTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true){
if(OrderMagicNumber()==Magic){
if(OrderType()==OP_BUYSTOP)
count++;}}}return(count);}
int BuyCount(){
int count=0;
for(int i=OrdersTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true){
if(OrderMagicNumber()==Magic){
if(OrderType()==OP_BUY)
count++;}}}return(count);}
int SellLimitCount(){
int count=0;
for(int i=OrdersTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true){
if(OrderMagicNumber()==Magic){
if(OrderType()==OP_SELLSTOP)
count++;}}}return(count);}
int SellCount(){
int count=0;
for(int i=OrdersTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true){
if(OrderMagicNumber()==Magic){
if(OrderType()==OP_SELL)
count++;}}}return(count);}
Saluti. Puoi dirmi cosa c'è che non va?
L'EA piazza ordini con stop sopra e sotto il prezzo. Se uno di essi scatta, lo stop viene regolato se il prezzo si allontana dallo stop più di quanto impostato, se il prezzo si muove verso lo stop allora nessun cambiamento.
All'inizio ho scritto solo Buy order e ha funzionato come previsto. Se aggiungo un'immagine speculare per vendere, gli stop saranno corretti dal valore impostato qualunque sia il movimento del prezzo.
In generale, se separatamente, o per comprare o per vendere, tutto funziona come dovrebbe essere, ma entrambe le parti insieme - c'è un bug.
L'intero codice che ci ha mostrato è un bug, vero? Almeno, la funzione OnTick è quasi interamente un bug...
Un bug, intendi l'intero codice mostrato?