[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 594

 

Tomei a teoria da probabilidade e estatisticamente se a abertura do pedido estiver a menos de 50 pips do preço, então na abertura do pedido com 10 pips de lucro é mais fácil de alcançar - se houver também 10 pips de stop loss (mesmo spread não é um problema) o movimento de tendência é uma grande coisa ...

Adicionar um stop loss, independentemente do StepStop

//+------------------------------------------------------------------+
//| Volfram.mq4 |
//| Vova-x@list.ru |
//| |
//+------------------------------------------------------------------+
#propriedade copyright "Vova-x@list.ru"
#ligação de propriedade ""
//-----------------------------------------
TakeProfit externo=10;
Int. externo StepStop=45;
Lotes duplos externos=0,01;
bool externo MoneyManagement=true;
Margem Externa InternaPercentagem=10;
//-------------------------------------------
int level_sell_stop;
int level_buy_stop;

//----------------------------------------------------------
init() vazio
{
// int minstop=MarketInfo(Symbol(),MODE_STOPLEVEL);
//Print("levelbuy_stop: "+minstop;)
}
//-----------------------------------------------------------
início nulo()
{
se (!IsTradeAllowed()) retornar;
level_buy_stop=0;
nível_sell_stop=0;
StepingStop();
StepingPendings();
se (TotalBuy ()==0 && TotalBuyStop ()==0) SetBuyStop ();
se (TotalSell()==0 && TotalSellStop()==0) SetSellStop();
Comentário("Level Buy Stop=",level_buy_stop*Point,
"\n", "Level Sell Stop=",level_sell_stop*Point);
}
//---------------------------------------------------------------------------------------------
StepingStop() vazio
{
se (StepStop<1) voltar;
int ask, bid, open, stop, x;
perda dupla;
para (int i=0; i<OrdersTotal(); i++)
{
se (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) quebrar;
se (OrderSymbol()!=Symbol())
se (OrderType()==OP_BUY)
{
bid=MathRound(Bid/Point);
open=MathRound(OrderOpenPrice()/Point);
stop=MathRound(OrderStopLoss()/Point);
x=(bid-open)/StepStop; x--; x*=StepStop;
level_sell_stop=open+x;
se (stop>=abrir+x)
loss=(open+x)*Point;
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE);
}
se (OrderType()==OP_SELL)
{
ask=MathRound(Perguntar/Pontar);
open=MathRound(OrderOpenPrice()/Point);
stop=MathRound(OrderStopLoss()/Point);
x=(open-ask)/StepStop; x--; x*=StepStop;
level_buy_stop=open-x;
se (stop>>0 && stop<=open-x)
loss=(open-x)*Point;
OrderModify(OrderTicket(),OrderOpenPrice(),loss,OrderTakeProfit(),0,CLR_NONE);
}
}
}
//----------------------------------------------------------------------------
StepingPendings() nulos
{
int ask, bid, open;
o dobro do preço, perda, lucro;
para (int i=0; i<OrdersTotal(); i++)
{
se (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) quebrar;
se (OrderSymbol()!=Symbol())
se (OrderType()==OP_BUYSTOP)
{
se (level_buy_stop==0)
open=MathRound(OrderOpenPrice()/Point);
se (abrir<= nível_buy_stop)
price=level_buy_stop*Point;
perda=preço-PontoStepStop*Point;
lucro=0; se (TakeProfit>0) lucro=preço+TakeProfit*Point;
OrderModify(OrderTicket(),price,loss,profit,0,CLR_NONE);
}
se (OrderType()==OP_SELLSTOP)
{
se (nível_sell_stop==0)
open=MathRound(OrderOpenPrice()/Point);
se (abrir>=nível_sell_stop)
price=nível_sell_stop*Point;
loss=price+StepStop*Point;
lucro=0; se (TakeProfit>0) lucro=preço-PontoTakeProfit*;
OrderModify(OrderTicket(),price,loss,profit,0,CLR_NONE);
}
}
}
//-------------------------------------------------------------------
SetBuyStop() vazio
{
lotes duplos=LotsCounting();
preço duplo = Licitação+StepStop*Point;
perda dupla=preço-PontoStepStop*Point;
lucro duplo=0; se (TakeProfit>0) lucro=preço+TakeProfit*Point;
int ticket=OrderSend(Symbol(),OP_BUYSTOP,lots,price,0,loss,profit"",0,0,CLR_NONE);
if (ticket<1) Print("Set a pending order failed with error #",GetLastError()," ",(GetLastError()));
}

SetSellStop() vazio
{
lotes duplos=LotsCounting();
preço duplo=Ask-StepStop*Point;
perda dupla=preço+PontoStepStop*Point;
lucro duplo=0; se (TakeProfit>0) lucro= preço-PontoTakeProfit*;
int ticket=OrderSend(Symbol(),OP_SELLSTOP,lots,price,0,loss,profit"",0,0,CLR_NONE);
if (ticket<1) Print("Set a pending order failed with error #",GetLastError()," ",(GetLastError()));
}


int TotalBuy()
{
int contagem=0;
para (int i=0; i<OrdersTotal(); i++)
{
se (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) quebrar;
se (OrderSymbol()!=Symbol()) continuar;
se (OrderType()==OP_BUY) contar++;
}
retornar (contar);
}

int TotalBuyStop()
{
int contagem=0;
para (int i=0; i<OrdersTotal(); i++)
{
se (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) quebrar;
se (OrderSymbol()!=Symbol()) continuar;
se (OrderType()==OP_BUYSTOP) contar++;
}
retornar (contar);
}

int TotalSell()
{
int contagem=0;
para (int i=0; i<OrdersTotal(); i++)
{
se (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) quebrar;
se (OrderSymbol()!=Symbol()) continuar;
se (OrderType()==OP_SELL) contar++;
}
retornar (contar);
}

int TotalSellStop()
{
int contagem=0;
para (int i=0; i<OrdersTotal(); i++)
{
se (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) quebrar;
se (OrderSymbol()!=Symbol()) continuar;
se (OrderType()==OP_SELLSTOP) contar++;
}
retornar (contar);
}

dupla Contagem de Lotes()
{
lotes duplos=Lotes;
se (MoneyManagement)
{
double lotsize=MarketInfo(Symbol(),MODE_LOTSIZE);
double freemargin=AccountFreeMargin();
lotes=0; se (tamanho do lote>0) lotes=NormalizarDuplo((MarginPercentual*freemargin/lotsize),1);
}
se (lotes>10) lotes=NormalizarDuplo(lotes,0);
se (lotes<0,01) lotes=0,01;
retorno (lotes);
}


// Fim

 
drknn:

A razão pela qual eles não responderam é provavelmente porque escrever tal indicador é simples e muito provavelmente desnecessário.
Obrigado, mas o que dizer? Ou me diga, talvez nas configurações do terminal, há uma oportunidade de mostrar mais claramente as marcas de hora ao longo de toda a extensão da escala de tempo?
 

Pessoal, ajudem! Não posso calcular o volume máximo de um comércio a ser aberto

// Расчет максимального объема
   for (double m = 0.1; AccountFreeMarginCheck(Symbol(),OP_SELL,m)>30; m = m + 0.1)
      {
       Max_lots   = m;
       double Ost = AccountFreeMarginCheck(Symbol(),OP_SELL,m);
      }

Max_lots é sempre zero!


E a segunda pergunta, como é calculado o NÍVEL?


 
root:
Obrigado, mas ainda assim... Ou me diga, talvez nas configurações do terminal, há uma opção para mostrar os marcadores de hora mais claramente ao longo de toda a extensão da escala de tempo?
Entendo, a falta deste indicador é a última coisa que o impede de ganhar dinheiro em divisas. Definitivamente não há nada disso, mas Urain tem um similar para 8 linhas. Se você não puder, pergunte ao autor, ele está no fórum.
Arquivos anexados:
time_line.mq4  2 kb
 

em termos simples, o volume pode ser calculado da seguinte forma

/* вычитаем средства обозначенные на стопаут c учетом процента риска */
   curBalance = AccountFreeMargin() * (1 - AccountStopoutLevel() / 100.) * percent; // percent - от 0 до 100
/* множитель (1 или 10) зависит от четырех-пятизначности  */
   koeff = iif(DIGITS == 3 || DIGITS == 5, 10, 1);
/* расчет рабочего лота, нормализация */
   lot = NL(curBalance / (koeff * lossPoint * TICKVALUE + MARGINREQUIRED)); //lossPoint - количество пунктов потерь
   if (lot < MINLOT)    lot = 0;
   if (lot > MAXLOT)    lot = MAXLOT;

/* DIGITS,MINLOT,MAXLOT,TICKVALUE,MARGINREQUIRED получаем из Marketinfo() */


e nível = AccountEquity() / AccountFreeMargin() * 100;

 
keekkenen:



e nível = AccountEquity() / AccountFreeMargin() * 100;

NÃO é correto. Esta fórmula não funciona Nível
 
Noterday:
NÃO está correto. Esta fórmula não funciona a nível

Sim, errado, nível = AccountEquity() / AccountMargin() * 100;

 
keekkenen:

Sim, errado, nível = AccountEquity() / AccountMargin() * 100;

Obrigado :)
 
Olá. Rapazes, por favor, me ajudem com uma coisa. Eu ainda nem ouvi falar - mas e se alguém o tem? A idéia é transferir todos os objetos selecionados de um gráfico para outro. Isto é, suponha que eu precise transferir a marcação de todos os tempos de um símbolo para uma janela. É difícil repetir os prazos de troca de mark-up, devido ao peso do cálculo (o cálculo de 30-50 tendências no M1 faz com que o terminal se destaque - e é apenas cerca de 16 - 24 horas de um gráfico). Talvez haja um roteiro que copie os objetos no gráfico (neste caso - linhas de tendência) com a subseqüente transferência de toda a gama de linhas de tendência para outra janela? Ou talvez haja a possibilidade de combinar vários modelos em uma janela?
 

Desculpe pelo flub, mas hoje é o dia.

=====

E balançar uma altura sem sentido...

Um par de frases que voaram daqui...

===========

Andrei Voznesensky.