Hozzászólások
-
SzerzőBejegyzés
-
Hozzászólás: Commission lekérdezése pozíció nyitás előtt #11395
Nagyon szépen köszönöm a gyors választ!
Hozzászólás: Vírtuális szerveren futatott robot. #5256Továbbra sem tudom elindítani a szervert. Ugyan azokat a hibaüzeneteket kapom.(10 dollár így kárba vész ami nem nagy összeg, de azért szívesen szóvá tenném)
Mql5 nek a forumára is írta, de semmi…Minden esetre köszönöm a választ!
Hozzászólás: Vírtuális szerveren futatott robot. #5244Mt4-es vírtuális szerverer varázslóján keresztül regisztrált szerver.
Mql5 nek a honlapjáról is ellehet indítani és ott írja ki az error saving data üzenetet.
Mt4ben pedig azt a választ kapom, hogy nincs kapcsolat a szerverrel.
Ma regisztráltam egy újat és azzal működik.Hozzászólás: zero divide error #4928Köszönöm a gyors választ!
Hozzászólás: Nyilak törlése #3586Válaszodat nagyon köszönöm!
Hozzászólás: Nyitott pozíció egy részének lezárása #2868Rendben, megfogadom a tanácsod!
Köszönöm a segítséged!Hozzászólás: Nyitott pozíció egy részének lezárása #2861Nagyon köszönöm a segítségeteket!
Sikerült megoldani:
if(OrderOpenPrice()<=(Bid-TC_1*Point) && 0==GlobalVariableGet(„Részzárás”)){
OrderClose(Ticket,0.1,Bid,5,Lime);
GlobalVariableSet(„Részzárás”,1);}if(OrderOpenPrice()<=(Bid-TC_2*Point) && 1==GlobalVariableGet(„Részzárás”)){
OrderClose(Ticket,0.1,Bid,5,Lime);
GlobalVariableSet(„Részzárás”,2);}if(Ticket==false){
GlobalVariableSet(„Részzárás”,0);}Hozzászólás: Nyitott pozíció egy részének lezárása #2858Így próbáltam megoldani:
TC_1=15;
TC_2=30;// első részzárás
if(OrderOpenPrice()<=(Bid-TC_1*Point)){
OrderClose(Ticket,0.1,Bid,5,Lime);}// második részzárás
if(OrderOpenPrice()<=(Bid-TC_2*Point)){
OrderClose(Ticket,0.1,Bid,5,Blue);}Az a baj, hogy amíg igaz a feltétel addig folyamatosan zárja befelé a pozíciót 0.1 lotonként.
Úgy szeretném megoldani, hogy ha a az első részzárás feltétele igaz akkor csak egyszer zárjon be egy 0.1 lotot a pozícióból és ne többször.
Ezután jönne második részzárás.Köszönöm segítségedet!
Hozzászólás: Nyitott pozíció egy részének lezárása #2853Szia!
Ezzel a témával kapcsolatban az a kérdésem hogyan lehet azt jól megoldani, hogy mondjuk egy 0.3 lotos pozíciót 3 részletben lezárni?
OrderClose()függvénnyel próbáltam megvalósítani, de vannak problémáim.
Az 1.részt 15 pipes, a 2.részt 30 pipes haszonnál akarnám lezárni. A maradék 0.1 lotot pedig a TakeProfit-ra(ami 60 pipes haszon) bíznám.
Türelmedet és válaszodat előre is köszönöm!
Hozzászólás: Pozíciók darabszámának szabályozása #2827Így sikerült megoldani:
for(i=0;i<=OrdersTotal();i++){ if(OrderSelect(i,SELECT_BY_POS)){ if(OrderMagicNumber()==Magic_EURUSD_buy_a_H1)Buy_H1=true;}} if(A_M5_Close-Támasz_H1<=0.0005 && Vétel_M5==True && Vétel_M15==True && Vétel_M30==True && Vétel_H1==True && Vétel_H4==True && Eladás_D1==False){ if(Buy_H1==false){ Ticket_EURUSD_Buy_a_H1=OrderSend(Symbol(),OP_BUY,lots,Bid,Slippage,Bid-StopLoss_H1*Point,Bid+TakeProfit_H1*Point,Komment,Magic_EURUSD_buy_a_H1,EURUSD_Expiration,Green);}}
Hozzászólás: Pozíciók darabszámának szabályozása #2825Köszönöm a segítséget!
Próbálkozok azzal amit írtál.
Majd megírom mire jutottam.Hozzászólás: Pozíciók darabszámának szabályozása #2823for(i=0;i<=OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderMagicNumber()==Magic_EURUSD_buy_a_MN1)
Ticket_EURUSD_Buy_a_MN1=true;
else
Ticket_EURUSD_Buy_a_MN1=false;}}
if(Ticket_EURUSD_Buy_a_MN1==false){
** if(A_M5_Close-Támasz_MN1<=0.0005 && Vétel_M15==True && Eladás_M30==False && Eladás_H1==False && Vétel_H4==True && Vétel_D1==True){
Ticket_EURUSD_Buy_a_MN1=OrderSend(Symbol(),OP_BUY,lots,Bid,Slippage,Bid-StopLoss_MN1*Point,Bid+TakeProfit_MN1*Point,Komment,Magic_EURUSD_buy_a_MN1,EURUSD_Expiration,Green);}}Így próbáltam megoldani, hogy ne nyitogassa folyamatosan a pozíciót, de hiába. Amíg a „**”-gal megjelölt feltétel igaz addig folyamatosan nyitja az új pozíciót. Minden új tickénél nyit egyet.
Régebben küldtél nekem egy ilyen segítséget:
„A kulcs az, hogy minden gyertya első tickjében fusson le a programod.Ezt többféleképpen el lehet érni, pl. a Bars (gyertyák száma) változását figyelve vagy az aktuális szerver idő figyelésével:
if (Bars != Bars.Prev) {
// Funkciók
Bars.Prev = Bars;
}if (TimeCurrent() >= NextRun) {
// Funkciók
NextRun = Time[0] + Period() * 60;
}Az első esetben azt használjuk ki, hogy a gyertyák száma csak akkor növekszik ha egy új gyertya elkezdődött.
A második esetben pedig azt, hogy tudjuk: a beérkező ticknél a gyertyák periodikus időbeli indulásához igazítjuk a legközelebbi futást.”
Azóta a stratégiám változott, azért nem tudom ezt alkalmazni.
Türelmedet előre is köszönöm!
Hozzászólás: ObjectCreate #2255Hello Radu!
for(i=1;i<=20;i++){ if(iHigh(Symb,PERIOD_D1,i)-Bid<=0.0015){ bool Ellenállás_D1=True; ObjectCreate("Ellenállás_D1",OBJ_HLINE,0,iTime(Symb,PERIOD_D1,i),iHigh(Symb,PERIOD_D1,i),0,0,0,0); ObjectMove("Ellenállás_D1",0,iTime(Symb,PERIOD_D1,i),iHigh(Symb,PERIOD_D1,i));}}
Problémám a következő: Visszafele számolva valamiért a 20.gyertya high értékéhez teszi a vonalat.
Azt szeretném megoldani, hogy a 20 megvizsgált gyertya küzül ahoz tegye amelyiknek a legközelebb van a high értéke az éppen aktuális piaci értékhez képest. (0.0015 pippen belűl)Válaszodat előre is köszönöm!
Hozzászólás: megbízások zárása, módosítása #1682PL:.
if(…stb1…){
buy_H1_a=ordersend(…stb…)}if(…stb2…){
buy_H1_a=ordersend(…stb…)}if(…stb3…){
buy_H1_a=ordersend(…stb…)}
Három egymástól különböző feltételek. Azt szeretném megoldani, hogy ne legyen 1nél több (buy_H1_a) nevű pozíció, mert ha 3 feltételből 2 teljesűl az nem jó mert akkor 2 (buy_H1_a) nevű pozi lesz és akkor az ordermodify nem tudja külön külön kezelni a 2 pozit az egyforma nevek miatt.if(OrdersTotal()==0) {
if(…stb1…){
buy_H1_a=ordersend(…stb…)}if(…stb2…){
buy_H1_a=ordersend(…stb…)}if(…stb3…){
buy_H1_a=ordersend(…stb…)}
}
Ebben az esetben nem lesz 1nél több buy_H1_a nevű pozi. De ezzel meg az a baj, hogy az egymással párhuzamosan működő robotok nem tudnak egyszere kereskedni mert if(OrdersTotal()==0)
Milyen feltételt kellene írni az if(OrdersTotal()==0) helyett?Hozzászólás: megbízások zárása, módosítása #1680Nagyon szépen köszönöm segítségedet.
A napokban egy újabb problémába ütköztem. A robotom 3 feltétel alapján nyithat pozíciót.
PL:.
if(…stb…){
buy_H1_a=ordersend(…stb…)}if(…stb…){
buy_H1_a=ordersend(…stb…)}if(…stb…){
buy_H1_a=ordersend(…stb…)}
//+——————————————————————+
if(OrderOpenTime()+3600<=TimeCurrent() ){
if(…stb…){
buy_H1_b=ordersend(…stb…)}if(…stb…){
buy_H1_b=ordersend(…stb…)}if(…stb…){
buy_H1_b=ordersend(…stb…)}
}
Azt szeretném megoldani hogyha teljesül az egyik feltétel és létrejön a pozíció akkor ne jöhessen létre újabb pozi, mert akkor az OrderModify nem működik helyesen a két azonos buy_H1_a nevű , vagy esetleg a két azonos buy_H1_b nevű pozi miatt.
if(OrdersTotal()==0)
{ ez azért nem jó nekem mert akkor a párhuzamosan müködő robotok nem tudnak egyszerre kereskedni.
Ha pedig különböző neveket találok ki akkor az azért nem jó mert minden egyes teljesülő feltétel esetén külön külön le kell vezetni az OrderModify és az OrderClose fügvényeket amiket nem szereténék :) mert van olyan robotom ami 20 különböző feltétel alapján dolgozik.Türelmedet és segítségedet előre is köszönöm!
-
SzerzőBejegyzés