//+------------------------------------------------------------------+//| Enum Lor or Risk |//+------------------------------------------------------------------+enum ENUM_LOT_OR_RISK
{
lots=0, // Constant lot
risk=1, // Risk in percent
};
//+------------------------------------------------------------------+
inputdouble MaximumRisk = 0.01; // Maximum Risk in percentageinputdouble DecreaseFactor = 3; // Descrease factorinput ENUM_LOT_OR_RISK InpLotOrRisk = lots; // Money management: Lot OR Risk
//+------------------------------------------------------------------+//| Calculate optimal lot size |//+------------------------------------------------------------------+double TradeSizeOptimized(void)
{
double price=0.0;
double margin=0.0;
//--- select lot sizeif(!SymbolInfoDouble(_Symbol,SYMBOL_ASK,price))
return(0.0);
if(!OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1.0,price,margin))
return(0.0);
if(margin<=0.0)
return(0.0);
double lot=0;
//---switch(InpLotOrRisk)
{
case lots:
lot=MaximumRisk;
break;
case risk:
lot=NormalizeDouble(AccountInfoDouble(ACCOUNT_MARGIN_FREE)*MaximumRisk/margin,2);
default:
break;
}
//--- calculate number of losses orders without a breakif(DecreaseFactor>0)
{
//--- select history for accessHistorySelect(0,TimeCurrent());
//---int orders=HistoryDealsTotal(); // total history dealsint losses=0; // number of losses orders without a breakfor(int i=orders-1; i>=0; i--)
{
ulong ticket=HistoryDealGetTicket(i);
if(ticket==0)
{
Print("HistoryDealGetTicket failed, no trade history");
break;
}
//--- check symbolif(HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol)
continue;
//--- check Expert Magic numberif(HistoryDealGetInteger(ticket,DEAL_MAGIC)!=Magic_Number)
continue;
//--- check profitdouble profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
if(profit>0.0)
break;
if(profit<0.0)
losses++;
}
//---if(losses>1)
lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//--- normalize and check limitsdouble stepvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
lot=stepvol*NormalizeDouble(lot/stepvol,0);
double minvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
if(lot<minvol)
lot=minvol;
double maxvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
if(lot>maxvol)
lot=maxvol;
//--- return trading volumereturn(lot);
}
//+------------------------------------------------------------------+
dove lotto - inserireTradeSizeOptimized()
Ho bisogno di correggerlo in Expert Advisor - altrimenti non è corretto lì
1 possibilità: la linea 1 aprirà la linea 4 a una data distanza, la linea 2 aprirà la linea 3 a una data distanza.
2a possibilità: la linea 7 aprirà una linea 10 a una data distanza, che si muove dietro il prezzo e quando il prezzo la tocca, scatta un comando. la linea 8 aprirà una linea 9 a una data distanza, - la stessa azione della 7 e della 10.
#proprietà versione "1.01"
C'è un'altra opzione - lalinea 1 aprirà 4 e 9. lalinea 2 aprirà 3 e 10.
Si è rivelata un'altra possibilità - lalinea 1 aprirà 4 e 9. lalinea 2 aprirà 3 e 10.
la linea 7 aprirà 10 e 3. la linea 8 aprirà 9 e 4
per aprire le posizioni al contrario e non toccare le impostazioniObj: comando :
c'è un'inversione -
Ora ho iniziato il test - non farò nulla fino alla fine del mese, mi chiedo cosa succederà. - lotto, l'ho impostato su rischio - in qualche modo calcolerà
probabilmente non abbastanza - avrebbe dovuto essere di più. ora abbiamo bisogno di aspettare ancora, punti di ingresso e impostare il TargetProfit = 35000.00;// Target Profit
//+------------------------------------------------------------------+inputstring t0="------ Parameters --------"; // Настройка Экспертаinputstring Template = "ADX"; // Имя шаблона(without '.tpl')inputdatetime HoursFrom = D'1970.01.01'; // Время старта Экспертаinputdatetime HoursTo = D'2030.12.31'; // Время закрытия всех позицийinputdouble TargetProfit = 900000.00; // Целевая прибыльinputuint maxLimits = 1; // Кол-во Позиции Открыть в одну сторонуinputdouble MaximumRisk = 0.01; // Maximum Risk in percentageinputdouble DecreaseFactor = 3; // Descrease factorinput ENUM_LOT_OR_RISK InpLotOrRisk = lots; // Money management: Lot OR Risk
apre posizioni dall'indicatore linee pivot timezone.mq5 dalla linea R2 - giù S2 - su
l'indicatore non può essere cancellato - le sue linee sono aggiornate il giorno successivo
probabilmente non abbastanza - avrebbe dovuto essere di più. ora abbiamo bisogno di aspettare ancora, punti di ingresso e impostare il TargetProfit = 35000.00; // Target Profit
apre posizioni dall'indicatore linee pivot timezone.mq5 dalla linea R2 - giù S2 - su
l'indicatore non può essere cancellato - le sue linee sono aggiornate il giorno successivo
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
capito come prescrivere correttamente il rischio
dove lotto - inserireTradeSizeOptimized()
Ho bisogno di correggerlo in Expert Advisor - altrimenti non è corretto lì
rinominato - esperto completato. tutti gli errori corretti. Titolo < Mossa del cavallo ><Mossa del cavallo
Aggiunto al precedente Expert, due metodi per la linea orizzontale.
1 possibilità: la linea 1 aprirà la linea 4 a una data distanza, la linea 2 aprirà la linea 3 a una data distanza.
2a possibilità: la linea 7 aprirà una linea 10 a una data distanza, che si muove dietro il prezzo e quando il prezzo la tocca, scatta un comando. la linea 8 aprirà una linea 9 a una data distanza, - la stessa azione della 7 e della 10.
#proprietà versione "1.01"
C'è un'altra opzione - lalinea 1 aprirà 4 e 9. lalinea 2 aprirà 3 e 10.
la linea 7 aprirà 10 e 3. lalinea 8 aprirà 9 e4
per aprire le posizioni sul retro e non toccare le impostazioniObj: comando:
c'è un'inversione -
#proprietà versione "1.01"
Si è rivelata un'altra possibilità - lalinea 1 aprirà 4 e 9. la linea 2 aprirà 3 e 10.
la linea 7 aprirà 10 e 3. la linea 8 aprirà 9 e 4
per aprire le posizioni al contrario e non toccare le impostazioniObj: comando :
c'è un'inversione -
Ora ho iniziato il test - non farò nulla fino alla fine del mese, mi chiedo cosa succederà. - lotto, l'ho impostato su rischio - in qualche modo calcolerà
Non male! Lentamente - ma sta migliorando
Sì! Sta andando dritto in cima.
rinominato - esperto completato. tutti gli errori corretti. Titolo < Mossa del cavallo ><Mossa del cavallo
Interessante Expert Advisor.
impostare l'input double TargetProfit = 30000.00;// target profit
probabilmente non abbastanza - avrebbe dovuto essere di più. ora abbiamo bisogno di aspettare ancora, punti di ingresso e impostare il TargetProfit = 35000.00;// Target Profit
apre posizioni dall'indicatore linee pivot timezone.mq5 dalla linea R2 - giù S2 - su
l'indicatore non può essere cancellato - le sue linee sono aggiornate il giorno successivo
l'indicatore è qui sotto - cercherò il link all'indicatore sul sitohttps://www.mql5.com/ru/code/1114
impostare l'input double TargetProfit = 30000.00; // target profit
probabilmente non abbastanza - avrebbe dovuto essere di più. ora abbiamo bisogno di aspettare ancora, punti di ingresso e impostare il TargetProfit = 35000.00; // Target Profit
apre posizioni dall'indicatore linee pivot timezone.mq5 dalla linea R2 - giù S2 - su
l'indicatore non può essere cancellato - le sue linee sono aggiornate il giorno successivo
l'indicatore qui sotto - ora cercando sul sito web il link all'indicatorehttps://www.mql5.com/ru/code/1114
Questa è una delle opzioni. ma ci sono un milione di opzioni
Ho dimenticato di dire del lotto - impostato sull'input di rischio ENUM_LOT_OR_RISK InpLotOrRisk = lots;// Gestione del denaro: lotto o rischio
(informazioni esperte in .log) quali avvertimenti sono emessi https://www.mql5.com/ru/docs/event_handlers/ondeinit#proprietà versione "1.02"
trovato un altro modo per i pulsanti
qui selezioniamo
all'apertura della posizione - lo stop loss viene impostato immediatamente ( linea orizzontale gialla)
regolato qui -input double InpStopLoss = 55;// Obj: Stop Loss, in pip (1.00045-1.00055=1 pips)
disattivare set 0