[舉手] 請問MT4的OrderSend函數SL/TP設定

作者: yinzhiping (志平)   2018-09-13 21:34:06
各位版大好
想請問MT4的新手問題,反覆測試仍無解
1. 原本想達到的效果:
買單送出,停損掛日K低點,賣單掛日K高點
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,mktifL,Ask+tp*Point,"",56,0,Blue);
其中第6,第7個參數分別是 6.停損 7.停利
2. 目前作法及矛盾點:
目前是用在OnTick()裡面設的double mktifH, mktifL自設變數 :
mktifH=NormalizeDouble(MarketInfo(NULL,MODE_HIGH),5); // 今日高
mktifL=NormalizeDouble(MarketInfo(NULL,MODE_LOW),5); // 今日低
但跑EA就是SL掛不上去不知道為什麼(無論有無標準化位數都一樣)
另外用了自設變數測試就可以, 下面的MA31max, MA31med, MA31min (一樣double)
不知道為什麼這樣就可以,剛剛就不行,完全不明白中間的邏輯
MaList[0]=ma5d;
MaList[1]=ma10d;
MaList[2]=ma20d;
ArraySort(MaList,WHOLE_ARRAY,0,MODE_DESCEND);
MA31max=MaList[0];
MA31med=MaList[1];
MA31min=MaList[2];
3. 要問的問題:
1)為什麼會這樣 哭哭
2)追加:如果我在OrderSend以後馬上用OrderSelect OrderModify改sl tp
是有辦法辦到的嗎?
因為假設單一多用for迴圈找就麻煩多了
剛接觸,遇到無數瓶頸
懇請各位版上先進技術指導
大感謝 T T
作者: yinzhiping (志平)   2018-09-13 21:39:00
阿,忘了說是H1或M30策略,但變數是日高日低5/10/20MA
作者: vesta9 (菸酒生)   2018-09-14 02:50:00
MarketInfo 第一個參數換成 _Symbol
作者: n33222 (滿身菜味)   2018-09-14 15:28:00
有顯示ERROR嗎? 你試試看用F5一條一條跑跑看
作者: ducati5566 (on the way!!!)   2018-09-14 16:15:00
有compile error嗎?用High[0], Low[0]看看
作者: n33222 (滿身菜味)   2018-09-14 20:39:00
這有幾點可能會發生,第一就是停損數值錯誤,這種偵錯法你可以使用PRINT來確認數字對不對,或是停損離下單點位有時近,另外一種可能就是你的ORDERSEND的邏輯指令錯誤,根本不進去,沒看到ERROR代碼或是語法很難判斷,最好辦法你使用F5和F9調試,一行一行去檢驗跑到哪裡就跳掉了。明天幫你看

Links booklink

Contact Us: admin [ a t ] ucptt.com