/*[[ Name := NewsTrader Author := Jesse Breaker Lots := 1 Stop Loss := 999 Take Profit := 999 Trailing Stop := 999 ]]*/ // ==================================================================================================== // Defines //===================================================================================================== Define :StartHour(11),StartMinute(28),vSL(10),vTP(0),EntryAmount(10),OrderKillInSeconds(300); Var: vEntry(0),SL(0),TP(0),x(600),OrderedEntered(0); // ==================================================================================================== // Check time // ==================================================================================================== if Period<>1 then { Comment("MUST BE RUN ON Minute CHART!"); EXIT; }; //Wait 11 seconds before runnning script again. If CurTime - LastTradeTime < 15 Then Exit; // ==================================================================================================== // Vars // ==================================================================================================== var: cnt(0),counter(0); var: vLots(0),risk(0); // ==================================================================================================== // Calculate Open Orders // ==================================================================================================== Comment("Day Of Week : ",DayOfWeek," Hour : ",Hour," Minute : ",Minute, " Seconds : ",Seconds, "\n","Waiting for ",StartHour," Start Hour ",StartMinute, " Start Minute"); // order has turned into a valid buy or sell, so we delete the other stop order that was not triggered If OrderedEntered=2 AND TotalTrades = 2 then { If OrderValue(1,VAL_TYPE)=OP_BUY or OrderValue(1,VAL_TYPE)=OP_SELL then { DeleteOrder(OrderValue(2,VAL_TICKET),Red); exit; }; If OrderValue(2,VAL_TYPE)=OP_BUY or OrderValue(2,VAL_TYPE)=OP_SELL then { DeleteOrder(OrderValue(1,VAL_TICKET),Red); exit; }; }; // ==================================================================================================== // Lot Calculation //===================================================================================================== vLots = Lots; // ==================================================================================================== // Entry //===================================================================================================== If TotalTrades =0 then // we do the buys first { if (Hour=StartHour and (Minute=StartMinute or Minute=StartMinute+1 or Minute=StartMinute+2) and OrderedEntered=0) then { //vSL=0;vTP=0;//X=300; OrderedEntered=1; vEntry=h[1]+(EntryAmount*Point); SL=vEntry-(vSL*Point); if vTP<>0 then TP=vEntry+(vTP*Point); SetOrder(OP_BUYSTOP,vLots,vEntry,5,SL,TP,Blue); exit; }; }; // Now onto the Sells If TotalTrades =1 then // { if (Hour=StartHour and (Minute=StartMinute or Minute=StartMinute+1 or minute=StartMinute+2) and OrderedEntered=1) then { OrderedEntered=2; //vSL=0;vTP=0; vEntry=l[1]-(EntryAmount*Point); SL=vEntry+(vSL*Point); if vTP<>0 then TP=vEntry-(vTP*Point); SetOrder(OP_SELLSTOP,vLots,vEntry,5,SL,TP,Red); exit; }; }; //If CurTime - LastTradeTime < X Then Exit; // ==================================================================================================== // EOD Close //===================================================================================================== for cnt=1 to TotalTrades { If OrderValue(cnt,VAL_TYPE) <> OP_SELL and OrderValue(cnt,VAL_TYPE) <> OP_BUY then { // check how long it exists in the trading terminal. Time is counted in seconds. // 10 minutes = 600 seconds, 30 minutes = 1800, 1 hour = 3600, 1 day = 86400 If (CurTime - OrderValue(cnt, VAL_OPENTIME)) > OrderKillInSeconds then { DeleteOrder(OrderValue(cnt, VAL_TICKET), RED); exit; }; }; }; var : cnt2(0); for cnt=1 to TotalTrades { if OrderValue(cnt,VAL_SYMBOL)=Symbol then { // remove 'dud' orders //If OrderedEntered=2 then //AND (Hour = EndHour And Minute >= EndMinute) then // { //X=15; OrderedEntered=-1; If OrderValue(cnt,VAL_TYPE)=OP_BUY then { cnt2=0; for cnt2=1 to TotalTrades { If OrderValue(cnt2,VAL_TYPE)=OP_SELLSTOP) then { deleteOrder(OrderValue(cnt2,VAL_TICKET),Red); exit; }; }; }; If OrderValue(cnt,VAL_TYPE)=OP_SELL then { cnt2=0; for cnt2=1 to TotalTrades { If OrderValue(cnt2,VAL_TYPE)=OP_BUYSTOP) then { deleteOrder(OrderValue(cnt2,VAL_TICKET),Red); exit; }; }; }; // }; }; };