void DoAlert(string UD) { if (!NewBar() || !Use_Sound) return; PlaySound ("Alert2"); Alert (Symbol()," ",Period(),"m Boll Touch at ",UD); } bool NewBar() { static datetime dt = 0; if (dt != Time[0]) { dt = Time[0]; return(true); } }
int start() { int l_stoplevel_8; int l_spread_12; double l_point_16; double l_bid_24; double l_ask_32; int li_unused_40; double l_minlot_44; double l_lotstep_52; double ld_60; int li_68; int li_72; int li_76; int li_80; int li_84; int li_88; bool li_92; bool li_96; bool li_100; bool li_104; double ld_108; double ld_116; string ls_0 = Symbol(); if (gd_296 < 100.0 && AccountFreeMargin() < AccountBalance() * gd_296 / 100.0) { Print("Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) + ", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè"); Comment("\n", "Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) + ", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè"); Sleep(1000); return; }
//+------------------------------------------------------------------+ //| Check the correctness of the order volume | //+------------------------------------------------------------------+ bool CheckVolumeValue(double volume,string &description) { //--- minimal allowed volume for trade operations double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); if(volume<min_volume) { description=StringFormat("Volume is less than the minimal allowed SYMBOL_VOLUME_MIN=%.2f",min_volume); return(false); } //--- maximal allowed volume of trade operations double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX); if(volume>max_volume) { description=StringFormat("Volume is greater than the maximal allowed SYMBOL_VOLUME_MAX=%.2f",max_volume); return(false); } //--- get minimal step of volume changing double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP); int ratio=(int)MathRound(volume/volume_step); if(MathAbs(ratio*volume_step-volume)>0.0000001) { description=StringFormat("Volume is not a multiple of the minimal step SYMBOL_VOLUME_STEP=%.2f, the closest correct volume is %.2f", volume_step,ratio*volume_step); return(false); } description="Correct volume value"; return(true); }
int start() { int l_stoplevel_8; int l_spread_12; double l_point_16; double l_bid_24; double l_ask_32; int li_unused_40; double l_minlot_44; double l_lotstep_52; double ld_60; int li_68; int li_72; int li_76; int li_80; int li_84; int li_88; bool li_92; bool li_96; bool li_100; bool li_104; double ld_108; double ld_116; string ls_0 = Symbol(); if (gd_296 < 100.0 && AccountFreeMargin() < AccountBalance() * gd_296 / 100.0) { Print("Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) + ", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè"); Comment("\n", "Îïàñíàÿ ïðîñàäêà " + NormalizeDouble(AccountProfit(), 2) + "; íåäîñòàòî÷íî ñâîáîäíûõ ñðåäñòâ ñ÷åòà äëÿ ïðîäîëæåíèÿ òîðãîâëè " + NormalizeDouble(AccountFreeMargin(), 2) + ", ðåæèì îæèäàíèÿ âûõîäà èç ïðîñàäêè"); Sleep(1000); return; }
return(0);
//+------------------------------------------------------------------+ //| Check the correctness of the order volume | //+------------------------------------------------------------------+ bool CheckVolumeValue(double volume,string &description) { //--- minimal allowed volume for trade operations double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); if(volume<min_volume) { description=StringFormat("Volume is less than the minimal allowed SYMBOL_VOLUME_MIN=%.2f",min_volume); return(false); } //--- maximal allowed volume of trade operations double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX); if(volume>max_volume) { description=StringFormat("Volume is greater than the maximal allowed SYMBOL_VOLUME_MAX=%.2f",max_volume); return(false); } //--- get minimal step of volume changing double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP); int ratio=(int)MathRound(volume/volume_step); if(MathAbs(ratio*volume_step-volume)>0.0000001) { description=StringFormat("Volume is not a multiple of the minimal step SYMBOL_VOLUME_STEP=%.2f, the closest correct volume is %.2f", volume_step,ratio*volume_step); return(false); } description="Correct volume value"; return(true); }
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
مجموعة كتب في برمجة الاندرويد - كتب تعلم برمجة الإندرويد - Android Books | ليالي دمشق | استراحة بورصات | 1 | 11 - 07 - 2015 03:54 AM |
أبحث عن أستراتيجية لربح 4 نقاط (لنتادل الخبرات) | العيد سفيان | منتدى تداول العملات العام | 1 | 06 - 02 - 2013 09:04 PM |
ارجووو الرد من اصحاب الخبرات ....... | alaa366 | منتدى المؤشرات و الاكسبرتات | 6 | 20 - 07 - 2010 03:18 AM |