Ho preso il codice per la contabilità, l'apertura e la chiusura degli ordini dal tutorial (tradingexpert.mq4). Il codice è destinato a funzionare con una posizione, io ho bisogno di avere cinque posizioni.
Abbiamo leggermente modificato il codice nel modo seguente (le linee cambiate sono in grassetto), in modo che le posizioni siano aperte nella giusta quantità, ma quando invertiamo, solo una posizione viene chiusa e quella inversa viene aperta subito.
Come posso fare in modo che tutte le posizioni siano chiuse all'inversione, e che solo la posizione opposta sia aperta?
// Учёт ордеров
Symb=Symbol(); // Название фин.инстр.
Total=0; // Количество ордеровfor(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:if (OrderSymbol()!=Symb)continue; // Не наш фин. инструмif (OrderType()>1) // Попался отложенный
{
Alert("Обнаружен отложенный ордер. Эксперт не работает.");
return; // Выход из start()
}
Total++; // Счётчик рыночн. ордif (Total>5) // Было не более одного орд, стало не более пяти
{
Alert("Несколько рыночных ордеров. Эксперт не работает.");
return; // Выход из start()
}
Ticket=OrderTicket(); // Номер выбранн. орд.
Tip =OrderType(); // Тип выбранного орд.
Price =OrderOpenPrice(); // Цена выбранн. орд.
SL =OrderStopLoss(); // SL выбранного орд.
TP =OrderTakeProfit(); // TP выбранного орд.
Lot =OrderLots(); // Количество лотов
}
}
// Открытие ордеровwhile(true) // Цикл закрытия орд.
{
if (Total < 5 && Opn_B==true) // Открытых орд. нет +. Было Total < 1, стало Total < 5
{ // критерий откр. BuyRefreshRates(); // Обновление данных
SL=Bid - New_Stop(StopLoss)*Point; // Вычисление SL откр.
TP=Bid + New_Stop(TakeProfit)*Point; // Вычисление TP откр.Alert("Попытка открыть Buy. Ожидание ответа..");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buyif (Ticket > 0) // Получилось :)
{
Alert ("Открыт ордер Buy ",Ticket);
return; // Выход из start()
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
// Закрытие ордеровwhile(true) // Цикл закрытия орд.
{
if (Tip==0 && Cls_B==true) // Открыт ордер Buy..
{ //и есть критерий закрAlert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
RefreshRates(); // Обновление данных
Ans=OrderClose(Ticket,Lot,Bid,2); // Закрытие Buyif (Ans==true) // Получилось :)
{
Alert ("Закрыт ордер Buy ",Ticket);
break; // Выход из цикла закр
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
Ho preso il codice per la contabilità, l'apertura e la chiusura degli ordini dal tutorial (tradingexpert.mq4). Il codice è inteso per funzionare con una posizione, io ho bisogno di avere cinque posizioni.
Abbiamo leggermente modificato il codice nel modo seguente (le linee cambiate sono in grassetto), in modo che le posizioni siano aperte nella giusta quantità, ma quando invertiamo, solo una posizione viene chiusa e quella inversa viene aperta subito.
Come posso fare in modo che tutte le posizioni siano chiuse all'inversione, e che solo la posizione opposta sia aperta?
Fate di Ticket un array Ticket[5], memorizzate tutti e 5 i biglietti in esso. Al momento della chiusura, scorrere tutti i biglietti di conseguenza.
Non puoi essere considerato un principiante dal livello di utilizzo delle librerie. Avendo guardato il tuo codice, mi ci vorrebbero due settimane per capirlo. Se non di più. Quindi penso che non otterrai una risposta.
Vitya, non c'è bisogno di capire nulla - l'uomo vuole rendere le variabili globali da una "sandbox" (EA con le sue librerie) visibili nell'altra "sandbox" (libreria compilata). :)))
Non sono un progamer, sono un costruttore di codice. Così ho costruito questo indicatore (vedo che si può fare un'esposizione testuale, non un file t-questo è quello che farò per renderlo più facile da capire.
Mostra la somma dei punti e la dinamica della loro somma durante la settimana - a timeframes più piccoli, se il movimento precedente continua da Close[i+2] a Close[i+1] il movimento attuale Close[i] viene aggiunto, se contrario - viene sottratto. Dovrei prescriverlo in modo che il programma veda la chiusura di venerdì invece di chiudere la barra-. So che può essere fatto con DayOfWeek e 5 (il numero di venerdì), ma come posso farlo praticamente? Aiuto.
TarasBY: Vitya, non c'è niente da risolvere qui - la persona vuole che le variabili globali di una sandbox (EA con le sue librerie) siano visibili in un'altra sandbox (libreria compilata). :)))
Igor, un po' sbagliato! Nella "sandbox" (libreria compilata) solo le funzioni e tutte le variabili sono dichiarate nell'inluder. E le variabili che sono dichiarate nell'inluder (include file) dovrebbero essere visibili nel gufo, perché ho inserito l'inluder direttamente nel gufo. Non sei d'accordo?
Non sono un progamer, sono un costruttore di codice. Così ho costruito questo indicatore (vedo che si può fare un'esposizione testuale, non un file t-questo è quello che farò per renderlo più facile da capire.
Mostra la somma dei punti e la dinamica della loro somma durante la settimana - a timeframes più piccoli, se il movimento precedente continua da Close[i+2] a Close[i+1] il movimento attuale Close[i] viene aggiunto, se contrario - viene sottratto. Dovrei prescriverlo in modo che il programma veda la chiusura di venerdì, invece di chiudere la barra. So che può essere fatto con DayOfWeek e 5 (il numero di venerdì), ma come posso farlo praticamente? Aiuto.
Igor, un po' sbagliato! Solo le funzioni sono nella sandbox (libreria compilata), e tutte le variabili sono dichiarate nell'inluder. E le variabili che sono dichiarate nell'inluder (include file) dovrebbero essere visibili nel gufo, perché ho inserito l'inluder direttamente nel gufo. Non siete d'accordo?
allora cosa c'entra il riferimento alla libreria compilata?
No. Mi spiego - il vostro forum è come una speranza per l'ultima roccaforte competente del prog. e l'inserimento di dimensioni - è così che la scrittura PERIOD_W1 lo vedema né l'uso di dimensioni né l'uso di punti di riferimento fissi come date ottengono alcun effetto desiderato. Ho postato una domanda specifica su Friday - a proposito il tuo codice non compila perché dice 'version' - proprietà sconosciuta, quindi se non sai come mettere DayOfWeek e 5 (il numero di venerdì) nel codice altre opzioni non ti aiuteranno .
Vitek2010: No. Mi spiego - il vostro forum è come una speranza per l'ultima roccaforte competente del prog. e l'inserimento di dimensioni - è così che la scrittura PERIOD_W1 lo vedema né l'uso di dimensioni né l'uso di dati fissi come date ottengono alcun effetto desiderato. Ho postato una domanda specifica su Friday - a proposito il tuo codice non compila perché dice 'version' - proprietà sconosciuta, quindi se non sai come mettere DayOfWeek e 5 (il numero di venerdì) nel codice altre opzioni non ti aiuteranno .
TimeDayOfWeek(Time[i]) non specifica Time[i] ma una data specifica nel formato D'2014.01.27'.
E se avete bisogno di determinare che giorno è, basta chiamare DayOfWeek().
Caro, ho bisogno di aiuto.
Ho preso il codice per la contabilità, l'apertura e la chiusura degli ordini dal tutorial (tradingexpert.mq4). Il codice è destinato a funzionare con una posizione, io ho bisogno di avere cinque posizioni.
Abbiamo leggermente modificato il codice nel modo seguente (le linee cambiate sono in grassetto), in modo che le posizioni siano aperte nella giusta quantità, ma quando invertiamo, solo una posizione viene chiusa e quella inversa viene aperta subito.
Come posso fare in modo che tutte le posizioni siano chiuse all'inversione, e che solo la posizione opposta sia aperta?
Caro, ho bisogno di aiuto.
Ho preso il codice per la contabilità, l'apertura e la chiusura degli ordini dal tutorial (tradingexpert.mq4). Il codice è inteso per funzionare con una posizione, io ho bisogno di avere cinque posizioni.
Abbiamo leggermente modificato il codice nel modo seguente (le linee cambiate sono in grassetto), in modo che le posizioni siano aperte nella giusta quantità, ma quando invertiamo, solo una posizione viene chiusa e quella inversa viene aperta subito.
Come posso fare in modo che tutte le posizioni siano chiuse all'inversione, e che solo la posizione opposta sia aperta?
Non puoi essere considerato un principiante dal livello di utilizzo delle librerie. Avendo guardato il tuo codice, mi ci vorrebbero due settimane per capirlo. Se non di più. Quindi penso che non otterrai una risposta.
Non sono un progamer, sono un costruttore di codice. Così ho costruito questo indicatore (vedo che si può fare un'esposizione testuale, non un file t-questo è quello che farò per renderlo più facile da capire.
Mostra la somma dei punti e la dinamica della loro somma durante la settimana - a timeframes più piccoli, se il movimento precedente continua da Close[i+2] a Close[i+1] il movimento attuale Close[i] viene aggiunto, se contrario - viene sottratto. Dovrei prescriverlo in modo che il programma veda la chiusura di venerdì invece di chiudere la barra-. So che può essere fatto con DayOfWeek e 5 (il numero di venerdì), ma come posso farlo praticamente? Aiuto.
Vitya, non c'è niente da risolvere qui - la persona vuole che le variabili globali di una sandbox (EA con le sue librerie) siano visibili in un'altra sandbox (libreria compilata). :)))
Igor, un po' sbagliato! Nella "sandbox" (libreria compilata) solo le funzioni e tutte le variabili sono dichiarate nell'inluder. E le variabili che sono dichiarate nell'inluder (include file) dovrebbero essere visibili nel gufo, perché ho inserito l'inluder direttamente nel gufo. Non sei d'accordo?
Non sono un progamer, sono un costruttore di codice. Così ho costruito questo indicatore (vedo che si può fare un'esposizione testuale, non un file t-questo è quello che farò per renderlo più facile da capire.
Mostra la somma dei punti e la dinamica della loro somma durante la settimana - a timeframes più piccoli, se il movimento precedente continua da Close[i+2] a Close[i+1] il movimento attuale Close[i] viene aggiunto, se contrario - viene sottratto. Dovrei prescriverlo in modo che il programma veda la chiusura di venerdì, invece di chiudere la barra. So che può essere fatto con DayOfWeek e 5 (il numero di venerdì), ma come posso farlo praticamente? Aiuto.
Andrà bene?
Igor, un po' sbagliato! Solo le funzioni sono nella sandbox (libreria compilata), e tutte le variabili sono dichiarate nell'inluder. E le variabili che sono dichiarate nell'inluder (include file) dovrebbero essere visibili nel gufo, perché ho inserito l'inluder direttamente nel gufo. Non siete d'accordo?
Va bene così?
No. Mi spiego - il vostro forum è come una speranza per l'ultima roccaforte competente del prog. e l'inserimento di dimensioni - è così che la scrittura PERIOD_W1 lo vedema né l'uso di dimensioni né l'uso di dati fissi come date ottengono alcun effetto desiderato. Ho postato una domanda specifica su Friday - a proposito il tuo codice non compila perché dice 'version' - proprietà sconosciuta, quindi se non sai come mettere DayOfWeek e 5 (il numero di venerdì) nel codice altre opzioni non ti aiuteranno .
TimeDayOfWeek(Time[i]) non specifica Time[i] ma una data specifica nel formato D'2014.01.27'.
E se avete bisogno di determinare che giorno è, basta chiamare DayOfWeek().
In TimeDayOfWeek(Time[i]) non si imposta Time[i] ma una data specifica nel formato D'2014.01.27'.
Se volete determinare che giorno è, basta chiamare DayOfWeek().