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

 
vovander:
che tipo di valore restituisce OrderType()? Grazie

int OrderType( )
 

Ho una variabile esterna extern nella mia scheda. Se la collego a due coppie diverse e cambio questa extern su una di esse, cambia anche sull'altra per qualche motivo(

Ho trovato una soluzione con i parametri stringa - aggiungo il nome di un simbolo alla fine dell'inizializzazione. ma che dire degli interi e dei dubl?

---

un'altra domanda sulle funzioni di Kim.

ha

//| sy - nome dello strumento ( "" - qualsiasi simbolo, |
//| NULL - simbolo corrente) |
//| op - operazione ( -1 - qualsiasi posizione) |
//| mn - MagicNumber ( -1 - qualsiasi magia) |
//+----------------------------------------------------------------------------+
void SimpleTrailing(string sy="", int op=-1, int mn=-1)

cioè se chiamo SimpleTrailing(), la funzione funziona per tutte le coppie

ma se chiamo SimpleTrailing(NULL), allora funziona solo per quello con il gufo sul suo grafico?

È una caratteristica non documentata o cosa? Non ho trovato alcun riferimento a NULL nella funzione.

o SimpleTrailing(NULL) e SimpleTrailing() sono la stessa cosa?

 
Omm:

Domanda stupida. ci sono variabili esterne nella scheda. se la collego a due coppie diverse e cambio questa esterna su una di esse, cambia anche sull'altra per qualche motivo(

Ho trovato una soluzione per i parametri stringa - aggiungo un nome di simbolo alla fine della funzione durante l'inizializzazione.

---

un'altra domanda sulle funzioni di kim.


cioè se chiamo SimpleTrailing(), allora la funzione funziona per tutte le coppie

ma se chiamo SimpleTrailing(NULL), allora funziona solo per la coppia con il gufo?

È una caratteristica non documentata o cosa? Non ho trovato alcun riferimento a NULL nella funzione.

o SimpleTrailing(NULL) e SimpleTrailing() sono la stessa cosa?

1. Stai dicendo l'impossibile! - Il che significa che stai dicendo qualcosa di "sbagliato". Posso supporre che l'EA non usi l'identificatore - OrderMagicNumber().

2. Ho guardato il codice - qualcosa mi dice che usare SimpleTrailing() sarà identico a SimpleTrailing(NULL). Sta a voi controllare. E affinché la funzione funzioni con uno strumento grafico, chiamatela come segue: SimpleTrailing (Symbol()).

 

1. questo EA http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=42

La magia è formalmente lì (anche in extern per qualche motivo), ma non capisco come farla funzionare.

Sto cercando di aggiungere Breakeven e Trawl.

2. la questione è risolta.

L'ho trovato in un altro f-fi if (sy=="0") sy=Symbol();

Credo che l'autore abbia dimenticato di aggiungerlo a questo.

 

Ciò di cui ho bisogno è la funzione Breakeven https://forum.mql4.com/ru/11287/page55#11315

lavora solo una volta in una particolare posizione di un particolare simbolo

Cosa dovrei modificare nel giardino d'inverno?

se(ExistPositions(Symbol() )
{
per (int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
se(OrderSymbol()==Symbol() )
MovingInWL(Symbol())

}

}

 

Avete una funzione. Ci sono diversi ordini di volume diverso.

Per esempio, order1=0.1, order2=0.2, order3=0.3, order4=0.4 - la quantità totale di accordi a 1 lotto.

Ad un certo punto ho bisogno di chiudere una parte degli ordini per il totale di un certo lotto.

Per esempio, ho bisogno di chiudere 0,5 lotti. Quindi, abbiamo bisogno di una funzione che chiuda ordine4=0,4 e il resto, per esempio, di ordine3. Oppure ordine1, ordine2 e il resto di ordine3.

 
Omm:

Quello che mi serve è per la funzione Breakeven https://forum.mql4.com/ru/11287/page55#11315

funziona solo una volta in una particolare posizione di un particolare simbolo

Cosa devo riparare nel giardino d'inverno?

Questa funzione ha il controllo per l'attivazione singola - non c'è bisogno di inventare nulla:

    if (ExistPositions (Symbol(), -1, Magic))
    {MovingInWL (Symbol(), -1, Magic);}

E la funzione MovingInWL() dovrebbe essere modificata un po':

void MovingInWL (string sy = "", int op = -1, int mn = -1)
{
    double po, pp, ld_BU;
    int    i, k = OrdersTotal();
//----
    if (sy = "0") sy = Symbol();
    for (i = k - 1; i >= 0; i--)
    {
        if (!OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue;
        if (sy != "") if (OrderSymbol() != sy) continue;
        if (mn >= 0) if (mn != OrderMagicNumber()) continue;
        po = MarketInfo (OrderSymbol(), MODE_POINT);
        if (OrderType() == OP_BUY)
        {
            //---- Это условие выполняется однократно (пока БУ не установлен)
            if (OrderStopLoss() - OrderOpenPrice() < LevelWLoss * po)
            {
                pp = MarketInfo (OrderSymbol(), MODE_BID);
                if (pp - OrderOpenPrice() > LevelProfit * po)
                {
                    ld_BU = NormalizeDouble (OrderOpenPrice() + LevelWLoss * po, MarketInfo (OrderSymbol(), MODE_DIGITS));
                    ModifyOrder (-1, ld_BU, -1);
                    continue;
                }
            }
        }
        else if (OrderType() == OP_SELL)
        {
            //---- Это условие выполняется однократно (пока БУ не установлен)
            if (OrderStopLoss() == 0 || OrderOpenPrice() - OrderStopLoss() < LevelWLoss * po)
            {
                pp = MarketInfo (OrderSymbol(), MODE_ASK);
                if (OrderOpenPrice() - pp > LevelProfit * po)
                {
                    ld_BU = NormalizeDouble (OrderOpenPrice() - LevelWLoss * po, MarketInfo (OrderSymbol(), MODE_DIGITS));
                    ModifyOrder (-1, ld_BU, -1);
                }
            }
        }
    }
//----
}
 

Per favore aiutatemi a cambiare la funzione, nell'indicatore High Low della candela settimanale si presenta così

se (TimeDay(Time[i])!=TimeDay(Time[i+1])
{
se(TimeDayOfWeek(Time[i])==1)

Ho bisogno di High Low della candela mensile. Grazie

 

TarasBY, non funziona così.

In e-TFL_V2 aggiungo queste due righe a start() e alla funzione MovingInWL stessa.

Se diverse posizioni sono aperte, il breakeven è impostato solo su una di esse. ad ogni tick cerca di farlo di nuovo.

Non appena una posizione di Breakeven viene chiusa, la imposta su quella successiva.

Se ho notato nel primo messaggio il valore di breakeven è lo stesso per tutti i simboli, anche se ho impostato numeri diversi nella finestra delle impostazioni EA.

Non sono sicuro di dove sia il controllo per l'attivazione singola?

p.s. grazie per la funzione corretta. la sto testando su 5 cifre, ma penso che la maggior parte delle funzioni di kim funzioni comunque.

p.s.s. L'ho usato per un po' e sembrava funzionare. Era nel bug MovingInWL. grazie ancora. sono due giorni che ci sto lottando))

p.s.s. non riesco a capire perché Magic dovrebbe essere spostato in parametri EA esterni?

 
Come posso creare il mio server per Metatrader, cioè un server a cui un'altra persona del mio mt può connettersi?