- Credits
- 0
Saya, baru kenal dan semingguan belajar MQL dari Soe Hoe.. dan mempelajari dengan teliti setiap videonya. Saya hanya kurang begitu menangkap tentang bagian "return" dalam membuat fungsi. Karena saya kurang memahami tentang "nilai yang dikembalikan itu nilai apa? dan bagaiamana jika dalam sebuanh fungsi itu tidak ada nilai yang akan dikembalikan karena diakhir fungsi itu tujuannya untuk order send misalnya>.. nah apa yang dikembalikan...?
Misal dalam kode berikut ini saya membuat sebuah coding untuk rule order send buy dan sell (mohon maaf jika masih acak2an, maklum baru semingguan belajar)... di akhir kurung kurawal, harus diberi return value, kalau nggak ya gak bisa di compile, makanya saya iseng kasih nilai (0) pada return... eh bisa.... tapi sejujurnya saya nggak ngerti apa maksudnya return (0) itu dan bagaimana return itu sendiri diperlukan... saya sudah melihat video tutorialnya hanya masih belum paham 100%... kalau yang lain sudah sangat bisa dipahami.
berikut codingnya
Misal dalam kode berikut ini saya membuat sebuah coding untuk rule order send buy dan sell (mohon maaf jika masih acak2an, maklum baru semingguan belajar)... di akhir kurung kurawal, harus diberi return value, kalau nggak ya gak bisa di compile, makanya saya iseng kasih nilai (0) pada return... eh bisa.... tapi sejujurnya saya nggak ngerti apa maksudnya return (0) itu dan bagaimana return itu sendiri diperlukan... saya sudah melihat video tutorialnya hanya masih belum paham 100%... kalau yang lain sudah sangat bisa dipahami.
berikut codingnya
Code:
int FnOrder1 ()
{
{
double pHigh = iHigh (Symbol(),0,0) ;
double pLow = iLow (Symbol(),0,0) ;
double pOpen = iOpen (Symbol(),0,0) ;
double TPBuy ;
double TPSell ;
double SLBuy ;
double SLSell ;
TPBuy = Ask + (Takeprofit*Point) ;
TPSell = Bid - (Takeprofit*Point) ;
SLBuy = Ask - (Stoploss*Point) ;
SLSell = Bid + (Stoploss*Point) ;
if (Takeprofit == 0) {
TPBuy = 0 ;
TPSell = 0 ;
}
if (Stoploss == 0) {
SLBuy = 0 ;
SLSell = 0 ;
}
int cekSym ;
for (int i = OrdersTotal()-1 ; i > 0 ; i--)
{
OrderSelect (i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) cekSym++ ;
}
double pipBuy = MathRound((pOpen-pLow)/Point) ;
double pipSell = MathRound ((pHigh-pOpen)/Point) ;
bool PipFilter ;
int PipFilterCount ;
PipFilterCount = MathRound ((pHigh - pLow)/Point) ;
if (PipFilterCount >= pipFilterLow && PipFilterCount <= pipFilterHigh)
{PipFilter = True ;}
else {PipFilter = False ;}
if (pipFilterHigh == 0 && pipFilterLow == 0) PipFilter = True ;
//----------------------BUY---------------------------------------------
// OP 1 untuk open
if (pipBuy >= PipAchieve && Ask == pOpen && cekSym == 0 && PipFilter == True ) {
OrderSend (Symbol(),OP_BUY,Lots,Ask,Slippage,SLBuy,TPBuy,EAComment,MagicNumber,0,clrBlue) ;
}
int nPABuy ;
nPABuy = pipBuy-PipAchieve ;
double pPABuy ;
pPABuy = pOpen - (nPABuy*Point) ;
// OP 1 jika tidak kena open
if (nPABuy >= PipAchieve && Ask == pPABuy && cekSym == 0 && PipFilter == True) {
OrderSend (Symbol(),OP_BUY,Lots,Ask,Slippage,SLBuy,TPBuy,EAComment,MagicNumber,0,clrBlue) ;
}
//-----------------------SELL--------------------------------------------
int nPASell ;
nPASell = pipSell-PipAchieve ;
double pPASell ;
pPASell = pOpen + (nPASell*Point) ;
// OP 1 untuk open
if (pipSell >= PipAchieve && Bid == pOpen && cekSym == 0 && PipFilter == True) {
OrderSend (Symbol(),OP_SELL,Lots,Bid,Slippage,SLSell,TPSell,EAComment,MagicNumber,0,clrRed) ;
}
// OP 1 jika tidak kena open
if (nPASell >= PipAchieve && Bid == pPASell && cekSym == 0 && PipFilter == True) {
OrderSend (Symbol(),OP_SELL,Lots,Bid,Slippage,SLSell,TPSell,EAComment,MagicNumber,0,clrRed) ;
}
}
return (0) ;
}