[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 559

 
T-G:
Per favore, datemi una funzione per calcolare il massimo lotto di apertura ammissibile sul deposito, tenendo conto delle posizioni aperte (equity). Grazie in anticipo.

double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);

double requiredlots = AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED);

maxlot = MathMin(maxlot, requiredlots); // Максимальный объем, на который можно открыться

// Далее необходимо maxlot нормализовать под спецификацию контрактов, прежде чем вставлять в приказ
 

Saluti.

Aiutami a identificare questo tacchino: http://findicators.com/wp-content/uploads/2009/04/heiken-ashi.jpg

Si sostiene che sia un heiken ashi, ma anche un calcolo sommario rompe il modello. Forse qualcuno sa cos'è?

Con rispetto.

 
ns88ns:

Saluti.

Aiutami a identificare questo tacchino: http://findicators.com/wp-content/uploads/2009/04/heiken-ashi.jpg

Si sostiene che sia un heiken ashi, ma anche un calcolo sommario rompe il modello. Forse qualcuno sa cos'è?

Con rispetto.


Lo stesso, o piuttosto una sua modifica. È costruito dai mashq
 
Vinin:

Lo è, o piuttosto la sua modifica. Si costruisce sulla bilancia.


Grazie...

L'ho capito... Non capisco, in questo caso l'HA è spalmato sul MA, o in qualche altro modo... Beh, non è importante.

 
Aiutatemi a modificare l'indicatore in un semiautomatico.

Disegno manualmente una semplice linea e la chiamo Trendline 42864 per esempio. Come posso fare in modo che quando creo un'altra linea, il codice rinomini ogni linea creata, la ridipinga, imposti lo spessore, ecc.

A cosa mi serve? Ho un indicatore, devo trasformarlo in un semiautomatico. Cioè, se disegno manualmente una linea di tendenza, il codice dovrebbe ridipingerla e disegnare altre linee di tendenza, verticali e orizzontali. Mi serve anche per disegnare ognuno di loro.

L'indicatore è allegato. Il principio, tracciamo una linea su due punti, quando la doppia distanza tra questi due punti è passata, la linea finisce e la tendenza si ferma e va in incertezza. Voglio dire subito che non dovremmo cercare di creare una macchina automatica con questa linea in questa fase. Ho bisogno di un semiautomatico per ora.

File:
 

Pomeriggio. Quando si cerca di modificare due ordini contemporaneamente, per vendere - set sl..,

Se provo a modificare solo un ordine di vendita e un ordine di acquisto, non posso vedere l'ordine di acquisto. Per favore, consigliate quale può essere il

essere la ragione?

void FirstSellLockBuyModifi()
{
 double lock_buy_tp = NormalizeDouble((FirsSellLockBuyAvP()+TakeProfit*Point),Digits);
 int spread = MarketInfo(Symbol(),MODE_SPREAD);
 double first_sell_sl = NormalizeDouble((lock_buy_tp+spread*Point),Digits);        
 for (int i = 0; i <= OrdersTotal(); i ++)
    {
     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()!=Symbol())continue;
     if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
     if (OrderType()==OP_SELL && OrderOpenPrice()==FirstSellPrice())
       {Print("Мод-ция ордера FIRST SELL");
        OrderModify(OrderTicket(),OrderOpenPrice(),first_sell_sl,OrderTakeProfit(),0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера FIRST SELL № ",OrderTicket()," ошибка № ",error);
       }
     if (OrderType()==OP_BUY)
       {Print("Мод-ция ордера LOCK BUY");
        OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),lock_buy_tp,0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера LOCK BUY № ",OrderTicket()," ошибка № ",error);
       }
    }
 return(0);
}
 
TEXX:

Pomeriggio. Quando si cerca di modificare due ordini contemporaneamente, per vendere - set sl..,

Se provo a modificare solo un ordine di vendita e un ordine di acquisto, non posso vedere l'ordine di acquisto. Per favore, consigliate quale può essere il

essere la ragione?

È molto probabile che sia qui?

for (int i = 0; i <= OrdersTotal(); i ++)

Non è chiaro perché c'è uno spazio prima di ++?

Ma l'errore principale è quello di modificare più di un ordine allo stesso tempo. Il server non sarà in grado di eseguirlo, perché quando si cerca di modificare il secondo ordine, il thread di scambio verrà chiuso. Anche se nel tester, tale situazione può essere gestita senza problemi.

 
TEXX:

Pomeriggio. Quando si cerca di modificare due ordini contemporaneamente, per vendere - set sl..,

Se provo a modificare solo un ordine di vendita e un ordine di acquisto, non posso vedere l'ordine di acquisto. Per favore, consigliate quale può essere il

essere la ragione?

     
 for (int i = 0; i <= OrdersTotal(); i ++)  // 1 ошибка
  
     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()!=Symbol())continue; // нет смысла
     if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)  // после неё нет открывающейся скобки
  
   if (OrderType()==OP_SELL && OrderOpenPrice()==FirstSellPrice())
       {Print("Мод-ция ордера FIRST SELL");
        OrderModify(OrderTicket(),OrderOpenPrice(),first_sell_sl,OrderTakeProfit(),0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера FIRST SELL № ",OrderTicket()," ошибка № ",error);
       }

     if (OrderType()==OP_BUY)
       {Print("Мод-ция ордера LOCK BUY");
        OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),lock_buy_tp,0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера LOCK BUY № ",OrderTicket()," ошибка № ",error);
       }

Che errore dà?
 
sergeev:
Che errore dà?


Questo è il punto, non ci sono errori, solo buy non si modifica e basta, ma se sell è commentato, allora modify....
 

Anche un risultato negativo è un risultato e non è meno importante, ma se vedete l'immagine seguente (sulla sterlina, la perdita totale da 100 000 a 2000 con 1 lotto) ...... è ragionevole riscrivere il buy on sell, stop on profit, ecc.

La tua opinione?