[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 386

 
DhP:

Prova in questo modo:

Grazie. Farò un tentativo.
 

Pomeriggio.

1. Come si esprime il risultato di un commercio, cioè se è stato redditizio o in perdita? Per esempio, l'ultimo?

2. Come fare un trade virtuale e prendere in considerazione il suo risultato (segno)?

 
inoy:

Pomeriggio.

1. Come esprimete il risultato del commercio, cioè se è stato redditizio o non redditizio? Per esempio, l'ultimo?

2. Come fare una transazione virtuale e rendere conto del suo risultato (segno) ?

1. Guardate queste 2 funzioni:

isCloseLastPosByStop
isCloseLastPosByTake

2. C'è un modo molto semplice per un commercio virtuale. Aumentate la dimensione del deposito di 100 volte, beh, diciamo, invece delle famigerate 1000 sterline prendete 100000. E i lotti di una posizione virtuale si riducono al limite - a 0,01, per esempio, con un lotto di lavoro, come 10. 0,01 di 10 - questo è un decimo di un per cento - perdite e guadagni completamente impercettibili.

Segno di affare: isLossLastPos

 
sss2019:

Aiutatemi a risolvere il problema, perché se il ciclo ha solo 2 passaggi i prima è uguale a 0 e poi subito uguale a 4?

Da questo script l'allarme esce 0, 4.

Beh, forse è patamushta:

for(i=0,g=0,c=0;i<OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
    if(OrderMagicNumber() == MasterMagicNumber)     // а других точно нет?
      {
.............
      Alert(i);
.............
      }
.............
    }

Forse è meglio così:

for(i=0,g=0,c=0;i<OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
    Alert(i);
    if(OrderMagicNumber() == MasterMagicNumber)
      {
      starttime = OrderOpenTime();
      ArrayResize(prices,ArraySize(prices)+TradesCount);
      if(OrderSelect(i+1,SELECT_BY_POS,MODE_TRADES))
      if(OrderMagicNumber() == MasterMagicNumber) endtime = OrderOpenTime();
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      times[i] = starttime;
      times[i+1] = endtime;
      tickets[i] = OrderTicket();
      symbol = OrderSymbol();
      while(g < TradesCount*(i+1))
        {
        if(OrderType() == OP_BUY)
          {
          if(g == TradesCount*i)
            {
            prices[g] = OrderOpenPrice()-LowOpen*Point;
            }else
            {
            prices[g] = prices[g-1]-step*Point;
            }
          }
        if(OrderType() == OP_SELL)
          {
          if(g == TradesCount*i)
            {
            prices[g] = OrderOpenPrice()+HighOpen*Point;
            }else
            {
            prices[g] = prices[g-1]+step*Point;
            }
          }
        g++;
        }
      }
    }
 
DmitriyN:

1. Controlla queste 2 funzioni:

isCloseLastPosByStop
isCloseLastPosByTake

2. Per un commercio virtuale c'è un modo molto semplice. Aumentate l'importo del vostro deposito di 100 volte, beh, diciamo, invece delle famigerate 1000 sterline prendete 100000. E i lotti di una posizione virtuale si riducono al limite - a 0,01, per esempio, quando il lotto di lavoro, per esempio, 10. 0,01 di 10 - questo è un decimo dell'uno per cento - perdite e guadagni appena percettibili.

Segno di affare: isLossLastPos


Grazie. Ma ci deve essere un'opzione più elegante per gli ingressi virtuali, sicuramente. "Aumentare la dimensione del deposito di un fattore 100" - temo di non avere questa opzione nella vita reale)). Professionisti, non lasciatevelo sfuggire!
 
inoy:

Grazie. Ma ci deve essere un'opzione più elegante per gli ingressi virtuali, sicuramente. "Aumentare la dimensione del deposito di un fattore 100" - temo di non avere questa opzione su real)). Professionisti, non lasciatevelo sfuggire!

https://www.mql4.com/ru/search#!keyword=%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D1%82%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D0%BB%D1%8F&module=mql4_module_articles
 
Vinin:

https://www.mql4.com/ru/search#!keyword=%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D1%82%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D0%BB%D1%8F&module=mql4_module_articles

Grazie.
 
DhP:

Prova così:

bool GO = true;// глобальная переменная
//---------------------

if(GO && SignalType_1 && RSI >= 35 && Stoch >= 20 && CCI >= -100) {GO=false; return(+1);}//запретить повторный вход
//---------------
{OrderClose(.......); GO = true; }//открыть семафор при закрытии позиции.

Buon pomeriggio.ho provato a sistemarlo ora il gufo fa solo un trade che si chiude allo stop loss e basta.nessun altro trade si apre.ditemi cosa c'è di sbagliato

File:
 
artemka_1981:

Buon pomeriggio, ho provato a correggere ora il gufo fa solo un trade che si chiude allo stop loss e basta, non ci sono altri trade aperti, ditemi cosa c'è che non va

if(OrdersTotal()==0)GO=true;
 
// < 0 - Dn
// > 0 - Up
int Signal()
{
double RSI = iRSI(NULL,15,RSIperiod,RSI_price,SignalBar);
double Stoch = iStochastic(NULL,15,Stoch_K,Stoch_D,Stoch_slowing,Stoch_method,Stoch_price,Stoch_mode,SignalBar);
double CCI = iCCI(NULL,15,CCI_period,CCI_price,SignalBar);

double MA2 = iMA(NULL,15,ma2_period,ma2_shift,ma2_method,ma2_price,SignalBar);
double IchiA = iIchimoku(NULL, 15, tenkan, kijun, senkou_span_b, 3, SignalBar);
double IchiB = iIchimoku(NULL, 15, tenkan, kijun, senkou_span_b, 4, SignalBar); 

    if(GO && SignalType_1 && RSI >= 65 && Stoch >= 80 && CCI >= 100) {GO=false; return(+1);}//запретить повторный вход (+1);
    if(GO && SignalType_2 && Bid >= MA2 && RSI >= 65 && Stoch >= 80 && CCI>=100) {GO=false; return(+1);}//запретить повторный вход return(+1);
    if(GO && SignalType_3 && Bid >= IchiA && RSI >= 65 && Stoch >= 80 && CCI>=100) {GO=false; return(+1);}//запретить повторный вход (+1);
    
   
    
    if(GO && SignalType_1 && RSI <= 35 && Stoch <= 20 && CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1);
    if(GO && SignalType_2 && Ask <= MA2 && RSI <= 35 && Stoch <= 20 && CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1);
    if(GO && SignalType_3 && Ask <= IchiB && RSI <= 35 && Stoch <= 20&& CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1);
    
    if(OrdersTotal()==0)GO=true;
    
    return(0);
}
DhP:

Salve. Non funziona niente. Mi dispiace. Va bene. Mi sono solo confuso. Grazie mille.
Motivazione: