Autorius | Žinutė |
![]() |
2013-05-15 01:54 #344067 |
Noriu paprasyti pagalbos su mano kodu, paprastas jis, veikia, taciau yra klaidu ir veikia ne taip kaip noreciau:
Tai yra 2 klaidos, nemodifikuoja SELL orderio. ir po nesekmingo SELL orderio neatidaro buy orderio su 4 Volume. o atidaro vel su 1 volume. |
|
![]() |
2013-05-15 10:45 #344092
![]() |
rokasdude [2013-05-15 01:54]: Tai yra 2 klaidos, nemodifikuoja SELL orderio. ir po nesekmingo SELL orderio neatidaro buy orderio su 4 Volume. o atidaro vel su 1 volume. Visur, kur yra OP_SELL, OrderSend() turi būti naudojamas ne su Ask, o su Bid kaina. O dėl modifikavimo, skaičiuodamas SL bei TP, tu irgi neatsižvelgei į pavedimo kryptį. Siūlau labai gerai išsistudijuoti šį straipsnį: http://book.mql4.com/appendix/limits. |
|
![]() |
2013-05-15 12:31 #344106 |
Aciu, Egis_1974 padejai, sutvarkiau problemas, po apacia parasiau koda, kuris jau veikia kaip as norejau, taciau kazkodel kai bandau leisti Expert advisors, man viska praskenuoja bet raso kad padaryta 0 orderiu... sito nesuprantu, gal buvote susidure?
|
|
![]() |
2013-05-15 12:44 #344111
![]() |
rokasdude [2013-05-15 12:31]: <...> man viska praskenuoja bet raso kad padaryta 0 orderiu... sito nesuprantu, gal buvote susidure? Jei kalbi apie istorijos, o ne einamųjų pavedimų/pozicijų "skenavimą", tai terminalo Account History Tab'e reikia nurodyti (spausk dešinį pelės mygtuką, kad atsirastų iššokstantis meniu) tokio gilumo istoriją, kad matytųsi tavo ieškomi treidai. |
|
![]() |
2013-07-25 12:52 #352641 |
Tai va, šiandien ryte prisėdau prie metatraderio ir sukodavau savo pirmą EA. Gauti duomenys:
![]() ![]() Gal galite pakomentuoti, kam idomu galiu imesti koda, dar kolkas SL nesu idejes nes kai ji nustatau neatidaro orderiu. |
|
![]() |
2013-07-25 14:36 #352652 |
Kodas: extern double Lots = 0.01; extern double TakeProfit = 100; extern double StopLoss = 100; double MA1, MA2; int start() { static int last_ST_direction; static int current_ST_direction; static int last_CCI_direction; static int current_CCI_direction; static int last_direction; static int current_direction; int ticket; MA1=iMA(NULL,0,1,0,MODE_EMA,PRICE_CLOSE,0); MA2=iMA(NULL,0,14,0,MODE_EMA,PRICE_CLOSE,0); //----MA if(MA1>MA2) { current_direction = 1; //up } if(MA1<MA2) { current_direction = 2; //down } //----Stoch if(iStochastic(NULL,0,14,3,7,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,14,3,7,MODE_SMA,0,MODE_SIGNAL,0)) { current_ST_direction = 1; //up } if(iStochastic(NULL,0,14,3,7,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,14,3,7,MODE_SMA,0,MODE_SIGNAL,0)) { current_ST_direction = 2; //down } //----CCI if(iCCI(NULL,0,14,PRICE_TYPICAL,0)>0) { current_CCI_direction = 1; //up } if(iCCI(NULL,0,14,PRICE_TYPICAL,0)<0) { current_CCI_direction = 2; //down } //----buy if((current_ST_direction != last_ST_direction) && (current_direction == 1) && (current_CCI_direction != last_CCI_direction)) { if((current_ST_direction == 1) && (current_CCI_direction == 1)) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Bid+TakeProfit*Point,"MA sample",16384,0,Green); //OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()-StopLoss*Point,Bid+TakeProfit*Point,OrderExpiration()); last_ST_direction = current_ST_direction; last_CCI_direction = current_CCI_direction; } } //----sell if((current_ST_direction != last_ST_direction) && (current_direction == 2) && (current_CCI_direction != last_CCI_direction)) { if((current_ST_direction == 2) && (current_CCI_direction == 2)) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"MA sample",16384,0,Red); //OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()+StopLoss*Point,Bid-TakeProfit*Point,OrderExpiration()); last_ST_direction = current_ST_direction; last_CCI_direction = current_CCI_direction; } } //----close { int total = OrdersTotal(); for(int i=total-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); int type = OrderType(); { if ((type == OP_BUY) && (current_direction == 2) && (iStochastic(NULL,0,14,3,7,MODE_SMA,0,MODE_MAIN,0)>75) && (iStochastic(NULL,0,14,3,7,MODE_SMA,0,MODE_SIGNAL,0)>75) && (current_ST_direction != last_ST_direction) && (iCCI(NULL,0,14,PRICE_TYPICAL,0)>100)) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red ); } if ((type == OP_SELL) && (current_direction == 1) && (iStochastic(NULL,0,14,3,7,MODE_SMA,0,MODE_MAIN,0)<25) && (iStochastic(NULL,0,14,3,7,MODE_SMA,0,MODE_SIGNAL,0)<25) && (current_ST_direction != last_ST_direction)&& (iCCI(NULL,0,14,PRICE_TYPICAL,0)<-100)) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red ); } } } } //---- return(0); } Va visas kodas, nesu dar tikras ar viskas veikia pagal salygas, taciuau dar ieskosiu klaidu. gal kas gali padeti parasyti koda i //---close skilti, kad jeigu atidarytas orderis pasiekia ten tarkim 10pipsu minusa, kad ji uzdarytu. |
Norėdami rašyti forume, turite užsiregistruoti, o jei jau registravotės- prisijungti.