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

 
Twilight:

Salve.


Comment("test"+test2,testJPY);

Comment("testJPY[1] = ",testJPY[1]);
In qualche modo, provalo.
 
r772ra:

Va più o meno così, provatelo.


No, lei non capisce il compito.

Dovete passare o il nome della variabile o il valore della variabile, a seconda della situazione.

 

Può una variabile essere assegnato a diversi valori?


qualcosa del genere

int N=(1;2;5;9;15;19)

 
abeiks:

È possibile può una singola variabile essere assegnata a ad una singola variabile?


qualcosa del genere

int N=(1;2;5;9;15;19)

E poi come faccio a capire quale valore usare?

O volevi dichiarare un array? Allora int N[6] = {1, 2, 5, 9, 15, 19};

Non uso tali matrici, se mi sbaglio, sarò corretto da una persona esperta...


 
AlexeyVik:
E poi come posso capire quale valore usare?

O volevi dichiarare un array? Allora int N[6] = {1, 2, 5, 9, 15, 19};

Non uso tali array, se mi sbaglio, qualcuno mi correggerà...



Grazie! Sto pensando di usare questo in test come una restrizione commercio in certi giorni del mese. se(Giorno()==N[6]) !

 

Ciao! Per favore, aiutami...

Come si può creare una casella su un grafico, in cui si può mettere un segmento dello stesso grafico, conoscendo i tempi di inizio e fine del segmento.

Grazie...

 

Ciao, puoi aiutare ad aggiungere un consigliere martingala, in modo che in caso di un trade perdente, il prossimo si aprirà con un lotto doppio rispetto al precedente.

//+------------------------------------------------------------------+

//| Test3.mq4 |

//| Popov Vladimir |

//| http://vk.com/id143715412 |

//+------------------------------------------------------------------+

#proprietà copyright "Popov Vladimir"

#proprietà link "http://vk.com/id143715412"


extern double Lots = 0.1;

extern int TakeProfit = 130;

extern int StopLoss = 80;

extern int Slippage = 5;

extern string comment = "Tma bot";

extern int Magic = 123;

extern string Indi = "Dati dell'indicatore";

extern string TimeFrame = "time frame corrente";

extern int HalfLength = 20;

extern int Price = PRICE_CLOSE;

extern double ATRMultiplier = 2.0;

extern inttern ATRPeriod = 100;

extern bool Interpolate = true;

extern inttern Indent = 5;


extern inttern KPeriod =5;

extern int DPeriod =3;

extern inttern Slowing =3;



doppio PriceHigh, PriceLow, SL, TP, PriceMiddle, PriceBuy, StochasticHigh, StochasticLow, PriceSell;

doppio HighesBuffer[];

doppio LowesBuffer[];

int ticket1, ticket2;


//+------------------------------------------------------------------+

//| funzione di inizializzazione dell'esperto |

//+------------------------------------------------------------------+

int init()

{


se (cifre == 3 || cifre == 5)

{

TakeProfit *= 10;

StopLoss *= 10;

Scivolamento *= 10;

}





ritorno(0);

}

//+------------------------------------------------------------------+

//| funzione di deinizializzazione esperto |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

ritorno(0);

}

//+------------------------------------------------------------------+

//| funzione di inizio esperto |

//+------------------------------------------------------------------+

int start()

{

PriceHigh = iCustom (Symbol (), 0, "Time", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0);

PriceLow = iCustom (Symbol (), 0, "Time", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);

PriceMiddle = iCustom (Symbol (), 0, "Time", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 0, 0);

doppio lotto, Lotto;

if (Bid >= PriceHigh && CountSell() == 0)

{

SL = NormalizeDouble(Bid+StopLoss*Point, Digits);

TP = NormalizeDouble(Bid-TakeProfit*Point, Digits);

ticket1 = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, 0, comment, Magic, 0, Red);

se (biglietto1 > 0)

{

if(OrderSelect(ticket1, SELECT_BY_TICKET, MODE_TRADES) == true)

OrderModify(ticket1, OrderOpenPrice(), SL, TP, 0);

PriceBuy = NormalizeDouble(OrderOpenPrice() + Indent*Point, Digits);

}

ticket2 = OrderSend(Symbol(), OP_BUYSTOP, Lots, PriceBuy, Slippage, 0, 0, 0, comment, Magic, 0, Green);

se (ticket2 > 0)

{

se (OrderSelect(ticket2, SELECT_BY_TICKET, MODE_TRADES)==true)

{

SL = NormalizeDouble(PriceBuy - StopLoss * Point, Digits);

TP = NormalizeDouble(PriceBuy + TakeProfit * Point, Digits);

OrderModify(ticket2, OrderOpenPrice(), SL, TP, 0);

}

}

}


if(Ask <= PriceLow && Ask <= StochasticLow && CountBuy() == 0)

{

SL = NormalizeDouble(Ask-StopLoss*Point, Digits);

TP = NormalizeDouble(Ask+TakeProfit*Point, Digits);

ticket1 = OrderSend(Symbol(), OP_BUY, Lots, Bid, Slippage, 0, 0, 0, comment, Magic, 0, Blue);

se (biglietto1 > 0)

{

if(OrderSelect(ticket1, SELECT_BY_TICKET, MODE_TRADES) == true)

OrderModify(ticket1, OrderOpenPrice(), SL, TP, 0);

PriceSell = NormalizeDouble(OrderOpenPrice() - Indent*Point, Digits);

}

ticket2 = OrderSend(Symbol(), OP_SELLSTOP, Lots, PriceSell, Slippage, 0, 0, 0, comment, Magic, 0, Orange);

se (ticket2 > 0)

{

se (OrderSelect(ticket2, SELECT_BY_TICKET, MODE_TRADES)==true)

{

SL = NormalizeDouble(PriceSell + StopLoss * Point, Digits);

TP = NormalizeDouble(PriceSell - TakeProfit * Point, Digits);

OrderModify(ticket2, OrderOpenPrice(), SL, TP, 0);

}

}

}

se (Ask <= PriceMiddle && CountSell() > 0)

{

for(int i=OrdersTotal()-1; i >=0; i--)

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)

{

if(OrderMagicNumber() == Magic && OrderType() == OP_SELL)

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black);

}

}

}

se (Bid >= PriceMiddle && CountBuy() > 0)

{

for(i=OrdiniTotali()-1; i >=0; i--)

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)

{

if(OrderMagicNumber() == Magic && OrderType() == OP_BUY)

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Green)

}

}

}

ritorno(0);

}

//+------------------------------------------------------------------+


int CountBuy()

{

int count = 0;

for (int tr = OrdersTotal()-1; tr >= 0; tr --)

{

OrderSelect(tr, SELECT_BY_POS);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

se (OrderType() == OP_BUY)

count++;

}

}

ritorno (count);

}


//+------------------------------------------------------------------+


int CountSell()

{

int count = 0;

for (int tr= OrdiniTotali()-1; tr >= 0; tr --)

{

OrderSelect(tr, SELECT_BY_POS);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

se (OrderType() == OP_SELL)

count++;

}

}

ritorno (count);

}

 
Si prega di avvisare - ci sono due indicatori personalizzati, entrambi sono indicatori di istogramma, entrambi sono visualizzati in una finestra separata. Qual è il modo di fare un indicatore che mostrerà l'intero (le letture di uno saranno divise per il secondo). questo è fatto per esempio nell'indicatore Bill Williams - MFI - lì dividono le letture delle dimensioni della candela per le letture del volume del tick. Penso che ci possa essere un modello (scheletro) in cui possiamo incollare i nomi degli indicatori o i loro codici per ottenere un indicatore che mostri la loro divisione (frazione). Qualcuno sa qualcosa?
 
AlexeyVik:
E poi come faccio a capire quale valore usare?

O volevi dichiarare un array? Allora int N[6] = {1, 2, 5, 9, 15, 19};

Non uso tali matrici, se mi sbaglio su qualcosa, i miei amici mi correggeranno...



int N[6] = {1, 2, 5, 9, 15, 19};

se(Giorno()==N[6])!

Tuttavia, questo suggerimento non ha funzionato - array fuori di gamma.. .Il passaggio dei test si è fermato a causa di unerrore critico nell'EA.

 
abeiks:

int N[6] = {1, 2, 5, 9, 15, 19};

se(Giorno()==N[6])!

Tuttavia, questo non ha funzionato - array fuori di gamma.. .Il passaggio dei test si è fermato a causa di un errore critico nell'EA.

Se leggete un po' di cose sugli array, capirete che l'indicizzazione degli array inizia da zero e va fino alla dimensione-1, cioè nel vostro caso da 0 a 5.