[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 229

 
nikkola >> :

Non l'ho decompilato, è così che l'ho ottenuto...

Non fa assolutamente alcuna differenza.

 
strano, è andato via da solo, ma grazie a TheXpert comunque , saprò qual è l'errore
 
nikkola >> :

Non l'ho decompilato, è così che l'ho ottenuto...

E in generale, gli esperti di questo tipo sono anche su questa risorsa in massa e con open source. Era una specie di EA prugna, lavorava all'intersezione del prezzo e dell'ondulazione. L'ho sostituito con un altro indicatore e questo è tutto. E mi sono imbattuto in questo problema.

 
e un'altra domanda, qualcuno sa se le citazioni sono disponibili in forma archiviata, perché sono a corto di internet ^_^
 
nikkola >> :

Ciao, aiuto per favore non riesco a capire... Ho un EA che lavora sui segnali dell'oscillatore, apre le posizioni dopo aver attraversato lo zero. Voglio fargli aprire una posizione quando la barra corrente si è chiusa e il segnale si è formato. Può aprire e chiudere una posizione alcune volte in un minuto :) finché il segnale non si regola.

Ecco il codice:


extern double Lot = 0,1;
extern double Per = 14;
bool gi_84 = TRUE;
int gi_88 = 366;
doppio gd_92 = 0,02;
doppio gd_100 = 0,2;
int g_period_108 = 14;
int gi_112 = 50;
int g_slippage_116 = 0;



void start() {
int l_cmd_52;
int l_ticket_56;

stringa l_symbol_0 = Symbol();
double l_isar_8 = iCustom(NULL,0, "daytrend-t01",Per,0,0);
double l_isar_9 = iCustom(NULL,5, "daytrend-t01",Per,0,0);
int l_cmd_40 = -1;
int l_ord_total_44 = OrdersTotal();
Lotto = MathMax(Lotto, MarketInfo(l_symbol_0, MODE_MINLOT));
for (int li_48 = l_ord_total_44; li_48 > 0; li_48--) {
if (OrderSelect(li_48 - 1, SELECT_BY_POS) == TRUE) {
l_cmd_52 = OrderType();
if (OrderSymbol() != l_symbol_0 || l_cmd_52 < OP_BUY || l_cmd_52 > OP_SELL) continua;
l_ticket_56 = OrderTicket();
RefreshRates();
se (l_cmd_52 < OP_SELL) {
se (l_isar_8 > 0) {
while (OrderClose(l_ticket_56, Lot, Bid, g_slippage_116) == 0) FunError(gi_112);
l_cmd_40 = -1;
continuare;
}
} else {
se (l_isar_8 < 0 ) {
while (OrderClose(l_ticket_56, Lot, Ask, g_slippage_116) == 0) FunError(gi_112);
l_cmd_40 = -1;
continuare;
}
}
l_cmd_40 = l_cmd_52;
}
}
if (l_cmd_40 < OP_BUY && g_period_108 == 0 || DayOfYear() < gi_88) {
RefreshRates();
if (l_isar_8 < 0 && l_isar_9 < 0 ) while (OrderSend(l_symbol_0, OP_BUY, Lot, Ask, g_slippage_116, 0, 0) == 0) FunError(gi_112);
else
if (l_isar_8 > 0 && l_isar_9 > 0 ) while (OrderSend(l_symbol_0, OP_SELL, Lot, Bid, g_slippage_116, 0, 0) == 0) FunError(gi_112);
}
}

void FunError(int ai_0) {
Dormire(ai_0);
RefreshRates();
}

void deinit() {
}

Io uso il seguente codice per questo:


bool Fun_New_bar()
/*
è progettato per rilevare se c'è una nuova barra,
se la nuova barra è catturata "true" altrimenti "false".
===========
Variabili:
===========
Test_Time - Tempo di prova
*/
{
static datetime Test_Time=0;
if(Test_Time!=Time[0])
{
Test_Time=Time[0];
return(true);
}
return(false);
}


Alla mia domanda per favore aiutatemi se so o ditemi se è impossibile farlo... sto cercando una risposta da 3 giorni e ancora nessuna fortuna. :-(

 
betmen >> :

Per la mia domanda si prega di aiutare chi sa o dirmi se è impossibile farlo ... Ho cercato una risposta per 3 giorni e finora senza risultato. :-(

Custom UI è usato per personalizzare le impostazioni. Cioè, una finestra che è stata sviluppata appositamente per un compito specifico (per indicatori specifici). Non c'è la possibilità di creare tali finestre in Metatrader. Questo significa che devono essere creati da qualche altra parte, con un file eseguibile. Il file eseguibile può essere sia Exe che Dll. La Dll può essere chiamata all'inizio di un indicatore/script, è chiaramente più conveniente.

 
jartmailru >> :

L'interfaccia utente personalizzata è usata per impostare i parametri. Cioè una finestra che è stata appositamente progettata per un compito specifico (per indicatori specifici). Non c'è la possibilità di creare tali finestre in Metatrader. Questo significa che devono essere creati altrove, con un file eseguibile. Il file eseguibile può essere sia Exe che Dll. Potete chiamare la Dll all'inizio dell'indicatore/script, è più comodo.

Grazie!!!

Se volete condividere l'articolo dove è descritto, ve ne sarò molto grato... :-)

 
betmen >> :

Grazie!!!

La domanda è come configurare l'interfaccia tra gli oggetti del "modulo principale" e le variabili in MQL4, se condividete con me qualche link ad articoli al riguardo, esploderò di gratitudine... :-)

Beh, la mia impressione è che sia meglio ignorare la Dll,

mostrare modalmente può essere pericoloso (è un indicatore sul thread UI, si possono avere conseguenze)-.

o forse no... In generale, il modulo può essere eseguito in un ambiente separato - con Wtl tutto è andato alla grande.

L'indicatore aspetterà un flag che gli permette di lavorare e interrogherà questo modulo.

E poi - quando il modulo è pronto - ci sono diverse funzioni come get(int & to[]), con puntatori/riferimenti,

che trasferirà dati diversi. Con le corde, potrebbero esserci dei problemi...

E tu condividerai con me il link dell'articolo ;-).

 
jartmailru >> :

Beh, ho l'impressione che sia meglio ignorare la Dll,

mostrarlo modalmente potrebbe essere pericoloso (è sul thread UI, potresti avere delle conseguenze)-.

o forse no... In generale, il modulo può essere eseguito in un ambiente separato - con Wtl tutto è andato alla grande.

L'indicatore aspetterà un flag che gli permette di lavorare e interrogherà questo modulo.

E poi - quando il modulo è pronto - ci sono diverse funzioni come get(int & to[]), con puntatori/riferimenti,

che trasferirà dati diversi. Con le corde, potrebbero esserci dei problemi...

Puoi condividere il link dell'articolo con me ;-).

La domanda era come gli indicatori standard disegnano una nuova scheda "Parametri" quando si selezionano le impostazioni dell'operazione dell'indicatore stesso, con la possibilità di sostituire i numeri con qualcosa di più leggibile.

Per esempio se chiamate il MA:


nel codice dell'indicatore è la variabile "MA_Method" e la selezione del metodo passa dalla condizione


interruttore(MA_Metodo)
{
caso 1 : short_name="EMA("; draw_begin=0; break;
caso 2 : short_name="SMMA("; break;
caso 3 : short_name="LWMA("; break;
default :
MA_Method=0;
short_name="SMA(";


Tu suggerisci di eseguire un exe compilato da un altro ambiente durante l'inizializzazione, è davvero possibile eseguire un file exe durante l'inizializzazione, ma poi c'è un altro problema - come passare i dati dal programma alle variabili dell'indicatore stesso?

cioè come passare un valore di combobox1.text convertito in un numero a MA_Method?

Non è estetico attraverso un file e non c'è uno spazio di memoria comune come MetaTrader e "test.exe" creato da me.

 
Rita писал(а) >>

Grazie. Ora farò una prova.

//------------------------------------------

Sì, ha funzionato. Gli esperti stanno lavorando.

E non ha funzionato per me :-( Ricevo ancora la scusa dell'errore e chiudo MT

Motivazione: